首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mac上获得"db: SQLSTATE[HY000] [2002]连接拒绝“错误

在Mac上获得"db: SQLSTATE[HY000] [2002]连接拒绝“错误
EN

Stack Overflow用户
提问于 2014-05-24 01:55:16
回答 3查看 9.7K关注 0票数 2

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

代码语言:javascript
复制
db: SQLSTATE[HY000] [2002] Connection refused

下面是我正在运行的命令:

代码语言:javascript
复制
./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等.
  • 将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

有什么想法吗?谢谢!

编辑

下面是显示脚本如何连接到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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-26 16:17:06

正如我已经在评论中指出的那样,很可能您没有运行您认为正在运行的PHP二进制文件。即使MAMP二进制文件在您的路径中,srdb.cli.php中的shebang行也会读取#!/usr/bin/php,并指向苹果提供的php二进制文件。

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

代码语言:javascript
复制
/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

另一种解决办法可能是用以下文字取代谢邦线:

代码语言:javascript
复制
#!/usr/bin/env php

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

票数 10
EN

Stack Overflow用户

发布于 2018-08-16 16:50:38

停止mysql:

代码语言:javascript
复制
sudo service mysql stop

然后开始:

代码语言:javascript
复制
sudo service mysql start

它解决了这个问题。

票数 1
EN

Stack Overflow用户

发布于 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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23840576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档