PHP“mysqli.so:undefined symbol:mysqlnd_connect in Unknown on line 0”

我一直试图让PHP CLI(Ubuntu上的7.0.7)与mysqli一起工作,但没有成功。 我在启动时收到相同的错误信息:

mysqli.so: undefined symbol: mysqlnd_connect in Unknown on line 0 

这是来自php -i的一些输出(清楚地显示两者都被加载):

 mysqli MysqlI Support => enabled Client API library version => mysqlnd 5.0.12-dev - 20150407 - $Id: 241ae00989d1995ffcbbf63d579943635faf9972 $ Active Persistent Links => 0 Inactive Persistent Links => 0 Active Links => 0 Directive => Local Value => Master Value mysqli.allow_local_infile => On => On mysqli.allow_persistent => On => On mysqli.default_host => no value => no value mysqli.default_port => 3306 => 3306 mysqli.default_pw => no value => no value mysqli.default_socket => no value => no value mysqli.default_user => no value => no value mysqli.max_links => Unlimited => Unlimited mysqli.max_persistent => Unlimited => Unlimited mysqli.reconnect => Off => Off mysqli.rollback_on_cached_plink => Off => Off mysqlnd mysqlnd => enabled Version => mysqlnd 5.0.12-dev - 20150407 - $Id: 241ae00989d1995ffcbbf63d579943635faf9972 $ Compression => supported core SSL => supported extended SSL => supported Command buffer size => 4096 Read buffer size => 32768 Read timeout => 31536000 Collecting statistics => Yes Collecting memory statistics => No Tracing => n/a Loaded plugins => mysqlnd,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password,auth_plugin_sha256_password API Extensions => mysqli,pdo_mysql 

PHP安装使用sudo apt install php7.0-cli

哪里不对?

原因是你需要在加载mysql / php-mysqli / mysqli / php-mysqli扩展之前加载mysqlnd。

检查你的php.ini php-mysqlnd是否在加载这些扩展之前被加载。 有时候,apache决定把所有的扩展分离成单独的.ini文件,你必须确保mysql-file在php-mysqli扩展和朋友之间通过重命名文件来加载。