我正在尝试运行这个搜索和替换脚本数据库的CLI版本,但我认为这是一个与Mac和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
发布于 2014-05-26 16:17:06
正如我已经在评论中指出的那样,很可能您没有运行您认为正在运行的PHP二进制文件。即使MAMP二进制文件在您的路径中,srdb.cli.php中的shebang行也会读取#!/usr/bin/php,并指向苹果提供的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另一种解决办法可能是用以下文字取代谢邦线:
#!/usr/bin/env php只有当$PATH中的MAMP二进制文件在/usr/bin前面的时候才能起作用。然而,使用#!/usr/bin/env php可以确保您始终使用相同的二进制文件,无论您是通过./srdb.cli.php还是使用php srdb.cli.php调用脚本。
发布于 2018-08-16 16:50:38
停止mysql:
sudo service mysql stop然后开始:
sudo service mysql start它解决了这个问题。
发布于 2020-03-14 04:06:40
要添加到z80Crew的出色解决方案中,对于其他不熟悉/不习惯更改路径变量的人,为MAMP二进制文件和interconnect提供的cli脚本中的搜索-替换-db脚本指定全位置路径解决了这个问题。我把字符串放在搜索和替换为in引号。我还增加了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
https://stackoverflow.com/questions/23840576
复制相似问题