本地主机(MAMP)中的WP CLI“建立数据库连接时出错”

时间:2018-01-11 作者:Klevis Miho

当我尝试使用WP CLI创建内容时,出现以下错误:

Error establishing a database connection. This either means that the username and password information in your `wp-config.php` file is incorrect or we can’t contact the database server at `localhost`. This could mean your host’s database server is down.
但我可以通过以下链接打开该网站:http://localhost:8888/projectname

有什么想法吗?

8 个回复
SO网友:Florin

进入你的wp-config.php 并更改您的DB_HOST127.0.0.1 而不是本地主机。

上面的评论归功于克雷格·韦恩。

SO网友:Evan

对我来说,答案是改变DB_HOST127.0.0.1:8889 而不是localhost 在里面wp-config.php, 并选中MySQL设置中的“允许网络访问MySQL”框。将端口设置为MAMP Pro用于数据库的端口是我在这里的其他答案中没有看到的关键缺失部分。YMMV。

SO网友:eknows

确保使用MAMP PHP二进制文件。您可以检查运行WP CLI的PHP版本

php wp-cli.phar --info
要使用最新的MAMP PHP,需要修改bash或zsh配置文件:

PHP_VERSION=$(ls /Applications/MAMP/bin/php/ | sort -n | tail -1)
export PATH=/Applications/MAMP/bin/php/${PHP_VERSION}/bin:$PATH
确保重新加载配置文件:

source ~/.bash_profile
确保正确应用更改:

  php wp-cli.phar --info

SO网友:saltcod

这其中有两个部分需要协同工作:

-您需要从localhost127.0.0.1 并在末尾添加端口号。对我来说127.0.0.1:3306.

端口号位于Mamp中的MySQL面板中。

enter image description here

SO网友:maverick

步骤1:检查mysql服务器是否正在运行步骤2:如果是,则可以使用

mysql -u root -p
然后输入密码:(必须从终端使用此命令),然后使用以下命令确保数据库存在:

show databases;
grant all privileges on database_name.* to \'root\'@\'localhost\' identified by \'password\';
flush privileges;
exit;
现在编辑wp配置。php文件并搜索

define(\'DB_NAME\', \'db_name\');
define(\'DB_USER\', \'root\');
define(\'DB_PASSWORD\', \'password\');
define(\'DB_HOST\', \'localhost\');
现在重新启动服务器并尝试登录wordpress仪表板。我希望这有帮助。

SO网友:That Brazilian Guy

在我的情况下,除了上述错误消息外,我还收到了以下警告:

PHP Warning:  mysqli_real_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
Warning: mysqli_real_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
PHP Warning:  mysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
Warning: mysqli_real_connect(): (HY000/2054): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1531
PHP Deprecated:  mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/html/wp-includes/wp-db.php on line 1562
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /var/www/html/wp-includes/wp-db.php on line 1562
PHP Warning:  mysql_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
Warning: mysql_connect(): Server sent charset (255) unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
PHP Warning:  mysql_connect(): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
Warning: mysql_connect(): Server sent charset unknown to the client. Please, report to the developers in /var/www/html/wp-includes/wp-db.php on line 1562
根据this question, 出现此问题的原因是MySQL 8.0的默认字符集为utfmb4.

事实上,我可以通过从MySQL 5.7升级到MySQL 8.0来复制错误

我通过导出数据库、降级到MySQL 5.7并重新导入数据解决了这个问题。我还对MariaDB 10.3进行了测试,效果很好。

SO网友:Cato

在我的情况下,我必须按照eknows在他的解决方案中提出的建议去做(https://wordpress.stackexchange.com/a/313862/172520) 当然,还可以为我的Mac启用对MySQL的网络访问(使用MAMP Pro)。

SO网友:Sokratesagogo

如果您在WordPress多站点上使用某些WP操作,也可能会出现此错误,在这种情况下,您需要指定URL,例如--URL=mysite。组织机构

结束

相关推荐

Wp-cli是否可以在多站点实例中显示所有站点上的所有用户及其角色?

使用列出多站点用户wp-cli(1)如果我运行wp user list 我在multisite(2)的顶层获得了一个用户列表(我的例子中有2个管理员)。列出多站点的用户,我有25个站点有不同的用户。一些用户在不同的站点中扮演不同的角色。当我使用网络标志时wp user list --network 我得到了同样风格的报告roles 柱但该报告涵盖了多站点网络。列出多站点的用户+角色我的目标是列出每个站点的所有管理员。这就是我被困的地方。显然,添加附加标志--role=administrator 不会给对话