PHP 7.0和MySQL启动错误“;未定义的符号:mysqlnd“未知中的分配程序”;

PHP 7.0和MySQL启动错误“;未定义的符号:mysqlnd“未知中的分配程序”;,php,mysql,pdo,Php,Mysql,Pdo,在自定义编译版本的PHP7上获得此警告,即使在运行php-v时也是如此 尝试发布所有解决方案。这是什么原因造成的 PHP警告:PHP启动:无法加载动态库'/usr/lib/PHP/20151012/pdo_mysql.so'-/usr/lib/PHP/20151012/pdo_mysql.so:未定义符号:第0行未知的mysqlnd_分配器 有类似的问题,但它们不是完全相同的问题-它们通常与缺少的mcrypt库有关。我确认mycrypt实际上已经加载,在打印phpinfo()时也加载了pdo_m

在自定义编译版本的PHP7上获得此警告,即使在运行
php-v
时也是如此

尝试发布所有解决方案。这是什么原因造成的

PHP警告:PHP启动:无法加载动态库'/usr/lib/PHP/20151012/pdo_mysql.so'-/usr/lib/PHP/20151012/pdo_mysql.so:未定义符号:第0行未知的mysqlnd_分配器

有类似的问题,但它们不是完全相同的问题-它们通常与缺少的
mcrypt
库有关。我确认mycrypt实际上已经加载,在打印phpinfo()时也加载了pdo_mysql

订单有什么问题吗?另外,这是针对PHP7的,我相信它对ini文件有不同的格式


编辑:按照此处的说明重新编译。在这方面不太有经验:

另外,使用apt get purge完全删除了MySQL。没有任何运气。

(代表OP发布)

按顺序执行的命令;我从系统中完全删除了MySQL和PHP,然后:

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

这似乎已经修复了错误。uuugh.

有时在
php.ini
文件中没有正确加载扩展名会出现问题。 我也有类似的错误,只有在我将这些扩展添加到
php.ini
之前的pdo_mysql之后,它才开始工作:

extension=mysqlnd    
extension=pdo
extension=pdo_mysql
终于成功了

然而,它显示了mysqlnd、PDO和PDO_-mysql之前加载过的警告,这意味着
PDO_-mysql
已经启用,并且可以被注释掉。欲了解更多信息,请查看我发现

extension=pdo_mysql

在我的php.ini文件中没有注释,这是导致问题的原因。库由我的系统上的/etc/php/7.4/cli/conf.d/文件中的文件加载,不需要通过php.ini文件中的取消注释行加载。

是否重新编译了php?指示用于支持PHP MySQL库的C级库是编译时决定的。KodiakSA,当提出问题时,请尝试进行修改,使问题对新读者仍然有意义(这是一个很好的一般性建议,而不仅仅是针对这个问题)。如果人们看到的第一件事是“这不是一个dup”,那么这只对看到第一个版本的人有意义。。我还清除并重新安装了php和php_mysql.halfer。将适用于DUP等。。新来的!谢谢。您会在编译命令/标志等中进行编辑吗?那东西有很大的不同。如果你能做到的话,我们会尝试重新打开这个问题。