Opened 4 years ago

Closed 4 years ago

Last modified 4 years ago

#1099 closed Bug (fixed)

Add client version check to installer

Reported by: vipsoft Owned by:
Priority: normal Milestone: Piwik 0.5.5
Component: Core Keywords:
Cc: Sensitive: no

Description

Pseudo-code:

    if mysql.server_version >= 5 and mysql.client_version < 5 then
        warning re: incompatible mysql client libraries
    endif

Some users report:

Warning: mysqli_stmt::bind_result() [<a href='function.mysqli-stmt-bind-result'>function.mysqli-stmt-bind-result</a>]: Server returned unknown type 246. Probably your client library is incompatible with the server version you use! in /.../public_html/piwik/libs/Zend/Db/Statement/Mysqli.php on line 255

According to the MySQL documentation:

C API Changes:

Incompatible change: Because the MySQL 5.0 server has a new implementation of the DECIMAL data type, a problem may occur if the server is used by older clients that still are linked against MySQL 4.1 client libraries. If a client uses the binary client/server protocol to execute prepared statements that generate result sets containing numeric values, an error will be raised: 'Using unsupported buffer type: 246'

This error occurs because the 4.1 client libraries do not support the new MYSQL_TYPE_NEWDECIMAL type value added in 5.0. There is no way to disable the new DECIMAL data type on the server side. You can avoid the problem by relinking the application with the client libraries from MySQL 5.0.

Change History (2)

comment:1 Changed 4 years ago by vipsoft (robocoder)

  • Resolution set to fixed
  • Status changed from new to closed

(In [1783]) fixes #1099 - add MySQL warning if client/server versions are incompatible

comment:2 Changed 4 years ago by vipsoft (robocoder)

(In [2957]) refs #1099 - more precise version number for the compatibility test

This is ok in php 5.3.x's because mysqlnd returns >= 5.0.5 as the client version.

Note: See TracTickets for help on using tickets.