PHP 7.0 and MySQL start-up error “undefined symbol: mysqlnd_allocator in Unknown”

大城市里の小女人 提交于 2020-11-28 10:21:08

问题


Getting this warning on a custom-compiled version of PHP7, even when running php -v.

Tried all solutions posted. What could cause this?

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/pdo_mysql.so' - /usr/lib/php/20151012/pdo_mysql.so: undefined symbol: mysqlnd_allocator in Unknown on line 0

There are similar questions to this, but they are not quite the same problem - they generally relate to a missing mcrypt library. I confirmed that mycrypt is in fact loaded, as well as pdo_mysql when printing out phpinfo().

Is there something wrong with the order? Also, this is for PHP 7, which I believe has different formats for ini files.


Edit: Following instructions here for recompile. Not too experienced in this: http://www.hashbangcode.com/blog/compiling-and-installing-php7-ubuntu

Also, removed MySQL completely with apt-get purge. No luck with anything.


回答1:


(Posted on behalf of the OP).

Commands performed in order; I removed MySQL and PHP completely from system then:

sudo apt-get update
sudo apt-get install php7.0
sudo apt-get install php7.0-mysql

This seems to have fixed the error. Uuuugh.




回答2:


Sometimes there is an issue with not loaded correctly extensions in the php.ini file. I had similar error and it start working only after I have added these extensions before pdo_mysql to the php.ini:

extension=mysqlnd    
extension=pdo
extension=pdo_mysql

And it finally worked!

However it shows warnings that mysqlnd, PDO and pdo_mysql was loaded before, it means that pdo_mysql already enabled and can be commented out at all. For further info please check PHP Warning: Module already loaded in Unknown on line 0




回答3:


I found that I had

extension=pdo_mysql

uncommented in my php.ini file and this was causing the problem. Libraries are loaded by the files in the /etc/php/7.4/cli/conf.d/ file on my system and don't need to be loaded by uncommenting lines in the php.ini file.



来源:https://stackoverflow.com/questions/38055444/php-7-0-and-mysql-start-up-error-undefined-symbol-mysqlnd-allocator-in-unknown

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!