今天迁移了一个wordpress网站,最后一步修改配置数据库信息后,打开网页出现了,出现了这个错误。

一开始,我以为是账号和密码不匹配,然后在服务器里使用 mysql 命令进行了测试,发现没有问题。

wordpress 关于数据库和密码的配置一共就三个
- 用户名
- 密码
- 主机
既然用户名和密码没有问了,那一定是 主机问题了,主机我看写的是 localhost , 就应 ping 了一下

发现解析解析是 ipv6的地址。这个倒没有发现什么问题。
使用 localhost 和 127.0.0.1 的区别
【重要】使用localhost 使用的 socket 连接, 使用 127.0.0.1 使用的 tcp 连接
方案1使用 localhost 连接怎么写
mysql -e "SHOW VARIABLES LIKE 'socket';"
+---------------+---------------------------+
| Variable_name | Value |
+---------------+---------------------------+
| socket | /var/lib/mysql/mysql.sock |
+---------------+---------------------------+
首先查看 socket 在哪里
define('DB_HOST', 'localhost:/var/lib/mysql/mysql.sock');
/var/lib/mysql/mysql.sock 是必须吗?
不一定,如果php的运行环境中 mysql socket 配置和mysql的配置 socket 位置一致就不用写
php -i | grep -i "mysql.*socket"
mysqli.default_socket => no value => no value
pdo_mysql.default_socket => /tmp/mysql.sock => /tmp/mysql.sock
方案2 使用 127.0.0.1
define( 'DB_HOST', '127.0.0.1' );