繁体   English   中英

使用 MAMP 在 Mac 上出现“db: SQLSTATE[HY000] [2002] Connection denied”错误

[英]getting “db: SQLSTATE[HY000] [2002] Connection refused” error on Mac with MAMP

我正在尝试运行这个 PHP 数据库搜索和替换脚本的 CLI 版本,但我认为这是一个与 Mac OS X 和 MAMP 相关的更普遍的 MySQL 问题。 每当我尝试在本地运行 CLI 脚本时,都会收到以下错误:

db: SQLSTATE[HY000] [2002] Connection refused

这是我正在运行的命令:

./srdb.cli.php -h 127.0.0.1 -u root -n mydbname -proot -c utf\-8 -s mywebsite.com -r dev.mywebsite.com

我试过的

  • 我可以使用这些设置连接到 mysql,没问题,使用mysql -u root -proot等...
  • 为 localhost 交换 127.0.0.1 会产生相同的错误。
  • 我所有的 my.cnf 文件都是空白的。
  • Apache 和 MySQL 运行良好。
  • 我已经成功地在另一台运行 MAMP 的 Mac 上复制了这个问题

我正在使用这个mysql :/Applications/MAMP/Library/bin/mysql

而这个php :/Applications/MAMP/bin/php/php5.3.28/bin/php

有人有什么想法吗? 谢谢!

编辑

这是显示脚本如何连接到 MySQL 的源代码: https : //github.com/interconnectit/Search-Replace-DB/blob/master/srdb.cli.php

反过来导入这个:

https://github.com/interconnectit/Search-Replace-DB/blob/master/srdb.class.php

正如我的评论中所述,您可能没有运行您认为正在运行的 PHP 二进制文件。 即使 MAMP php 二进制文件在您的路径中, srdb.cli.php的 shebang 行srdb.cli.php读取#!/usr/bin/php并指向 Apple 提供的 php 二进制文件。

因此,如果您使用 MAMP php 二进制文件的完整路径调用脚本,则应避免该问题:

/Applications/MAMP/bin/php/php5.3.28/bin/php srdb.cli.php -h 127.0.0.1 -u root -n mydbname -proot -c utf\-8 -s mywebsite.com -r dev.mywebsite.com

另一种解决方案可能是将 shebang 行替换为:

#!/usr/bin/env php

仅当 MAMP 二进制文件位于/usr/bin前面的 $PATH 中时,这才有效。 然而,使用#!/usr/bin/env php可确保您始终使用相同的二进制文件,无论您是通过./srdb.cli.php还是使用php srdb.cli.php调用脚本。

停止 mysql :

sudo service mysql stop

然后启动它:

sudo service mysql start

它解决了问题

要添加到z80crew的辉煌解决方案,为别人不熟/不舒服改变路径变量,指定用于毫安PHP程序,并通过互联提供的命令行脚本搜索替换-DB脚本充分位置路径解决了这个问题对我来说。 我把要搜索的字符串放在引号中并用引号替换。 我还增加了 wp-config.php 中的 php 超时限制: set_time_limit(3000);

我与传递给脚本的选项和 wp-config.php 文件中的内容之间的服务器名称保持一致(在 wp-config 中使用 localhost,在脚本中也使用 localhost)

/Applications/MAMP/bin/php/php7.4.2/bin/php /Applications/MAMP/htdocs/test/Search-Replace-DB-master/srdb.cli.php -h localhost -u root -proot --port 8889 -n test -s "http://olddomain.com" -r "http://localhost:8888/test" -v true

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM