我正在尝试运行此 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(使用前将#替换为@)