我试图“伪造”我们的开发服务器,认为我拥有的三个生产数据库服务器都在localhost上。我已将以下内容设置为主机...
127.0.0.1 localhost dev1 dev2 dev3
我在Mysql中设置了一个用localhost作为主机的用户,一切正常。如果我更改为dev1用户并重新启动权限,则会收到以下错误:
致命错误:带有消息的未捕获异常'PDOException' 'SQLSTATE [HY000] [2003]无法连接到'dev1'上的MySQL服务器(4)' 在/var/www/config/lib.php:11堆栈跟踪:#0 /var/www/config/lib.php(11):PDO-> __ construct('mysql:host = dev1', 'user','password',数组)#1
完全相同的连接作为localhost,而不是dev1。为什么是这样?我正在运行Mysql 5.7.
我也尝试使用127.0.0.1
,但这也无效。
在你将我标记为重复之前,我确实检查了
Using an alias for the localhost server in MySQL
该解决方案不适用于我,因为我知道我接受来自其他开发服务器的port 3306
上的连接。但是,是否可能存在与非localhost主机名和默认端口使用相关的类似问题?我是否必须在防火墙中打开localhost端口?
我尝试这样做的主要原因是我的代码不必从开发代码更改为生产代码。我有三个 DB 服务器,但所有服务器都在localhost for dev上使用相同的服务器。
感谢您的任何见解。