Ian*_*ter 80 php ubuntu mysqli warnings
在PHP中,每当我尝试连接到数据库时,我都会收到以下警告(通过mysql_connect
)
警告:mysql_connect():标头和客户端库次要版本不匹配.标题:50162图书馆:50524
在我的php -i
输出中,我在mysqli下列出了以下值
客户端API库版本=> 5.5.24
客户端API标头版本=> 5.1.62
我已经尝试更新php5-mysql 和 php,但我已经在他们两个的最新版本.如何更新标题版本以便我不再看到此警告?
编辑
我的MySQL文件应全部更新为最新版本:
$ apt-get install mysql.*5.5
. . .
mysql-client-5.5 is already the newest version.
mysql-server-core-5.5 is already the newest version.
mysql-server-5.5 is already the newest version.
mysql-testsuite-5.5 is already the newest version.
mysql-source-5.5 is already the newest version.
Run Code Online (Sandbox Code Playgroud)
删除旧版本
$ apt-get remove mysql.*5.1
. . .
Package handlersocket-mysql-5.1 is not installed, so not removed
Package mysql-cluster-client-5.1 is not installed, so not removed
Package mysql-cluster-server-5.1 is not installed, so not removed
Package mysql-client-5.1 is not installed, so not removed
Package mysql-client-core-5.1 is not installed, so not removed
Package mysql-server-5.1 is not installed, so not removed
Package mysql-server-core-5.1 is not installed, so not removed
Package mysql-source-5.1 is not installed, so not removed
Run Code Online (Sandbox Code Playgroud)
ken*_*ken 123
我正在使用MariaDB并遇到类似的问题.
从MariaDB网站,建议修复它
以较低的错误报告级别运行:
$err_level = error_reporting(0);
$conn = mysql_connect('params');
error_reporting($err_level);
Run Code Online (Sandbox Code Playgroud)我在Ubuntu中使用mysqlnd驱动程序修复了我的问题:
sudo apt-get install php5-mysqlnd
Run Code Online (Sandbox Code Playgroud)
干杯!
[更新:额外信息]安装此驱动程序还可以解决将整数值作为字符串返回的PDO问题.要将类型保持为整数,请在安装mysqlInd之后执行此操作
$db = new PDO('mysql:host='.$host.';dbname='.$db_name, $user, $pass,
array( PDO::ATTR_PERSISTENT => true));
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
Run Code Online (Sandbox Code Playgroud)
Car*_*ora 67
对于新的MySQL 5.6系列,你需要安装php5-mysqlnd,而不是php5-mysql.
删除此版本的mysql驱动程序
sudo apt-get remove php5-mysql
Run Code Online (Sandbox Code Playgroud)
而是安装它
sudo apt-get install php5-mysqlnd
Run Code Online (Sandbox Code Playgroud)
dAm*_*m2K 30
您的PHP是使用MySQL 5.1编译的,但现在它正在连接5.5.X系列的mysql库.您必须将PHP升级到使用MySQL 5.5编译的版本或将mysql客户端库还原为5.1.x.
mar*_*rek 23
MySQL也是如此:
sudo apt-get install php5-mysqlnd
Run Code Online (Sandbox Code Playgroud)
我已经阅读了这个线程试图找到MySQL的解决方案,我也看到了ken的答案,但我忽略了MariaDB的解决方案,浪费了几个小时.我不清楚这同样适用于MySQL.这篇文章只是为了免除你丢失的几个小时.
Mac*_*ity 10
这个错误的根本原因是PHP前一段时间与MySQL客户端库分离.所以正在发生的事情(主要是在较旧的Linux编译器上)是人们将针对MySQL Client的给定版本编译PHP (意味着安装的MySQL版本无关紧要)而不是升级(在CentOS中这个软件包列为mysqlclientXX
,XX
代表包裹号码).这也允许软件包维护者支持较低版本的MySQL.这是一种混乱的方式,但这是PHP和MySQL使用不同许可的唯一方法.
MySQLND通过使用PHP自己的本机驱动程序(ND)解决了这个问题,该驱动程序不再依赖于MySQL客户端.它也是为您正在使用的PHP版本编译的.这是一个更好的解决方案,如果没有其他原因使MySQLND与PHP进行PHP对话.
如果你无法安装MySQLND,你实际上可以安全地忽略这个错误.这只是一个FYI通知而不是任何事情.这听起来很吓人.
归档时间: |
|
查看次数: |
199676 次 |
最近记录: |