我试图运行PHPUnit来对一个WordPress插件进行单元测试,但是标题中的错误总是出现。
我使用WP-CLI来设置单元测试,但当我尝试运行它时,WP-CLI也会抛出类似的错误。
我使用MAMP来运行数据库。
我已经设置了WP-CLI和phar作为phar,它们在~/.bash-profile中有别名,并使用OS X提供的默认" PHP“运行。更改此设置,并使用由MAMP提供的最新版本的PHPUnit运行WP-CLI和PHPUnit (它可以正常运行并连接到数据库),但PHPUnit仍然抛出相同的错误。
我尝试编辑wp-config.php文件,并将主机设置为":/path/ to /mamp/mysql.socket“、"localhost:/path/to/mamp/mysql.socket”和"127.0.0.1",但都没有帮助。
我完全卡住了,不知道下一步该怎么做。
发布于 2015-12-13 01:23:47
我刚刚遇到了这个错误--您是否检查了wp-config.php指定的模式是否存在?
在我的例子中,我完全忘记了创建它,所以修复就像CREATE DATABASE wordpress一样简单。
当wp-config.php数据库主机出错时,我也会遇到这个错误(尝试交换localhost和127.0.0.1)。
发布于 2017-03-18 09:36:01
首先,确保MySql确实在运行。如果进程还没有启动,它不会创建套接字文件。
netstat -tulpn | grep mysql或
ps -e | grep mysql如果MySql正在运行,则可以在wp-config.php中将数据库主机从localhost更改为127.0.0.1,但这只是一种变通方法。
当您指定localhost时,mysqli_real_connect()函数会尝试通过它找不到的Unix套接字连接到您的数据库(因此会出现“没有这样的文件”错误)。当您指定127.0.0.1时,它会尝试使用默认的TCP端口(通常是3306)连接到您的数据库。
这并不能解决PHP不知道在哪里可以找到MySql套接字的问题。您需要在php.ini中配置以下选项。套接字的位置因操作系统而异,但通常可以通过运行locate mysql.sock找到它。以下是适用于我在CentOS 6.8上的设置。
php.ini
pdo_mysql.default_socket = /var/lib/mysql/mysql.sock
mysqli.default_socket = /var/lib/mysql/mysql.sock其他系统通常使用/tmp/mysqld.sock。您可以通过检查MySql配置文件my.cfg来验证配置的位置。
将PHP配置为指向正确的套接字位置后,重新启动Apache/nginx,使其获得新的设置。
现在您可以按预期使用localhost了。
发布于 2017-12-07 18:28:40
只需转到您的phpMyAdmin,单击您的数据库,复制运行该服务的ip并替换您的wp-config.php文件:
/**主机名*/ MySQL (‘DB_HOST’,'localhost');
/**主机名*/ MySQL (‘DB_HOST’,'ip_where_is_running_mysqlserver');
https://stackoverflow.com/questions/32809896
复制相似问题