我正在尝试运行此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 -u root -proot
等...我正在使用这个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二进制文件在您的路径中,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二进制文件位于$ PATH前面的$ PATH中时,此方法才有效/usr/bin
。#!/usr/bin/env php
但是,使用确保,无论通过./srdb.cli.php
或与调用脚本,都始终使用相同的二进制文件php srdb.cli.php
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句