mysql8
默认使用 caching_sha2_password
方式PHP8
已经支持 但是安装完 phpinfo
并没有找到 caching_sha2_password
源码安装命令
./configure --prefix=/usr/local/php-8.3.9 --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-fpm --enable-opcache=no
make && make install
是缺少了什么选项 还是 安装完需要修改什么配置呢
查了一天没查到,AI也没给个靠谱的方案
谢谢各位
在PHP 8中,即使你已经使用了支持MySQL Native Driver (mysqlnd) 的配置选项来编译PHP,caching_sha2_password
的支持通常是通过mysqlnd本身自动处理的,而不需要额外的编译选项。caching_sha2_password
是MySQL 8的默认认证插件,它应该与正确配置的mysqlnd一起工作。
如果你发现phpinfo()
没有显示caching_sha2_password
相关的条目,这可能是因为几个原因:
php.ini
文件中有extension=mysqli.so
(或extension=php_mysqli.dll
在Windows上)和extension=pdo_mysql.so
(或相应的DLL文件)启用。php.ini
文件的路径是否正确,并且确保重启了Web服务器(如Apache或Nginx)和PHP-FPM(如果你使用的是它)以应用更改。caching_sha2_password
插件认证的,或者MySQL服务器被配置为使用其他认证插件。caching_sha2_password
。你可以通过查看MySQL的user
表来检查用户的认证插件。如果你已经检查了上述所有方面并且仍然遇到问题,你可以尝试以下步骤来进一步调试:
mysqli_connect()
或PDO::__construct()
时添加错误处理,以获取更详细的错误信息。最后,请注意,phpinfo()
并不总是显示所有可能的MySQL认证插件。它主要显示PHP配置和已加载的扩展信息。要确认PHP是否支持caching_sha2_password
,最好的方法是尝试使用它进行连接,并查看是否成功。