sql - 更新 MAMP 后在 Mac 上出现“db: SQLSTATE[HY000] [2002] Connection denied”错误
问题描述
我正在运行旧版本的 MAMP,发现无法安装当前版本的 Wordpress,因为它至少需要 PHP 5.2 版,所以我更新了现在运行 7.4.2 的 MAMP。在我尝试在项目中使用互连的Search-Replace-DB之前,更新似乎一切正常(站点正在运行)。使用 GUI,我收到了 AJAX 错误。如果出现 AJAX 错误,我应该按照 cli 说明进行操作;但是当我这样做时,无论我采用哪种方法,我都会遇到以下两个错误之一:
db: SQLSTATE[HY000] [2002] Connection refused
db: SQLSTATE[HY000] [2002] No such file or directory
我的 wp-config.php 看起来像:
/** MySQL database username */
define('DB_USER', 'root');
/** MySQL database password */
define('DB_PASSWORD', 'root');
/** MySQL hostname */
define('DB_HOST', '127.0.0.1');
我在使用 MAMP 的 Mac 上阅读了一个 SO 帖子,出现“db: SQLSTATE[HY000] [2002] Connection denied”错误,并尝试建议将 '#!/usr/bin/php -q' 行替换为 '#!/ rdb.cli.php 文件中的 usr/bin/env php -q'。
我尝试过的 cli 命令: //posts 建议使用 8889,但我的 mamp 似乎在 :8888 上运行?
//using localhost string
php srdb.cli.php -h localhost -n test -u root -proot -s oldname.org -r localhost:8889 -v true -z
//using ip
php srdb.cli.php -h 127.0.0.1 -n test -u root -proot -s oldname.org -r localhost:8889 -v true -z
//using localhost string
php srdb.cli.php -h localhost -n test -u root -proot -s oldname.org -r localhost:8888 -v true -z
//using ip
php srdb.cli.php -h 127.0.0.1 -n test -u root -proot -s oldname.org -r localhost:8888 -v true -z
//Using path explicitly with ip
/Applications/MAMP/bin/php/php7.4.2/bin/php srdb.cli.php -h 127.0.0.1 -u root -n test -proot -s oldname.org -r localhost:/8888
改行srdb.cli.php后,还是无法连接。在这一点上,我不知道是 php 还是 mysql 有问题,数据库是否损坏,或者更新 MAMP 后环境变量/路径/链接是否关闭,或者如何确定这些事情。任何见解将不胜感激。
解决方案
对于遇到此问题的其他任何人,指定 MAMP php 二进制文件(将执行脚本)和 cli 中的 search-replace-db 脚本的完整位置路径解决了该问题。我把要搜索的字符串放在引号中。我还增加了 wp-config.php 中的 php 超时限制: set_time_limit(3000);
请注意,您指定 localhost 的方式应该在传递给脚本的选项和 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```
推荐阅读
- javascript - 如何使 JS 导入可写?
- django - 两个方向的多对多
- python - 用于运行带有参数的 Python 程序的 Docker 文件
- rest - 使用 file_get_contents 测试 Rest API
- python-3.x - Google Colaboratory 中 geckodriver 的 executable_path 是什么?
- javascript - 带有 React Hooks 的 If 语句中出现意外的令牌语法错误
- python - 获取播放列表曲目后无法将曲目添加到播放列表
- python - 如何在单个帧中创建多个帧以显示输入以及输出?
- javascript - 循环遍历函数直到值不为空,ramda js
- android - ScrollView 或 NestedScrollView 内的 ConstraintLayout 不会滚动