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


13

当我尝试使用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 cant contact the database server at `localhost`. This could mean your hosts database server is down.

但是我可以使用以下链接打开网站:http:// localhost:8888 / projectname

任何的想法?

Answers:


27

进入您的wp-config.php并将其更改DB_HOST127.0.0.1而不是localhost。

感谢评论中的Craig Wayne。


2
在MAMP Pro中,我还必须选中“允许对MySQL的网络访问”才能起作用。
尼克M

我尝试了这个但是没有帮助。我正在使用基岩样板。我一次又一次地通过wp-config和.env文件,一次又一次地通过MAMPs配置。调试了wb-db.php文件。然后我从.env中的DB_HOST行中删除了#,一切都很好。
汤姆(Tom)

@Tom 在中更改主机之前,请尝试使用tommcfarlin.com/installing-wp-cli-with-mampwp-config.php。它应该工作。
玛丽亚·丹尼尔·迪帕克

5

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


4

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

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

1
这第一个命令只是给出了错误Could not open input file: wp-cli.phar
费利克斯·伊芙

您是否在wordpress根文件夹中运行该命令?
知道

是的,但是WP目录wp-cli.phar根目录中没有文件。
菲利克斯·夏娃

在这里,您可以找到有关如何安装wp-cli.phar的更多信息:(wp-cli.org
了解

2
@FelixEve如果你移动在安装过程中wp-cli.phar/usr/local/bin/wp,可以发出wp --info来代替:显示的PHP binary应该是你的WP安装目录下的一个。
PJ_Finnegan '19

0

步骤1:检查您的mysql服务器是否正在运行步骤2:如果是,则可以使用以下方式登录到mysql:

mysql -u root -p

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

show databases;
grant all privileges on database_name.* to 'root'@'localhost' identified by 'password';
flush privileges;
exit;

现在编辑wp-config.php文件并搜索

define('DB_NAME', 'db_name');
define('DB_USER', 'root');
define('DB_PASSWORD', 'password');
define('DB_HOST', 'localhost');

现在重新启动服务器,并尝试登录到您的wordpress仪表板。希望对您有所帮助。


“ mysql -u root -p”给我“用户'root'@'localhost'的访问被拒绝(使用密码:是)”
Klevis Miho

设置mysql数据库时,必须输入密码。使用该密码。如果您在设置mysql数据库时未配置密码,只需按Enter键而不是任何密码即可。
特立独行'18

我做了你写的 可以使用“ mysql -u root -p”连接到数据库。还授予特权。但是错误仍然存​​在。
Klevis Miho

1
我发现,如果我在wp-config.php中将localhost更改为127.0.0.1,则一切正常……我觉得这里存在一个更大的问题
Craig Wayne,

1
使用WordPress v3.6.9和WP-CLI v1.5.1的全新安装,@ CraigWayne的解决方案可以完美地工作。
–brainbrain

0

就我而言,除了上述错误消息外,我还收到以下警告:

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

根据此问题,发生此问题是因为MySQL 8.0的默认字符集是utfmb4

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

我通过导出数据库,降级到MySQL 5.7并重新导入数据解决了该问题。我还对MariaDB 10.3进行了测试,并且工作正常。



0

其中有两个部分需要共同努力:

—您需要从切换localhost127.0.0.1并在最后添加端口号。对我来说是127.0.0.1:3306

端口号在Mamp的MySQL面板中。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.