使用 MAMP 在 Mac 上出现“db: SQLSTATE[HY000] [2002] 连接被拒绝”错误

2024-03-29

我正在尝试运行此 PHP 数据库的 CLI 版本搜索和替换脚本 https://github.com/interconnectit/Search-Replace-DB,但我认为这是一个与 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 etc...
  • 将 127.0.0.1 替换为 localhost 会出现相同的错误。
  • 我所有的 my.cnf 文件都是空白的。
  • Apache 和 MySQL 运行良好。
  • 我已经在另一台运行 MAMP 的 Mac 上成功复制了这个问题

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

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

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

Edit

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

依次导入:

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


正如我在评论中所述,很可能您没有运行您认为正在运行的 PHP 二进制文件。即使 MAMP php 二进制文件在您的路径中,shebang 行也会在您的路径中srdb.cli.php reads #!/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 二进制文件位于 $PATH 前面时,此操作才有效/usr/bin. Using #!/usr/bin/env php但是,确保无论您是否通过以下方式调用脚本,您始终使用相同的二进制文件./srdb.cli.php或与php srdb.cli.php.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 MAMP 在 Mac 上出现“db: SQLSTATE[HY000] [2002] 连接被拒绝”错误 的相关文章