Laravel8连接MySQL,DB_HOST的规则是什么
环境:Laravel8 + PHP7.4 + Mysql8
之前使用mysql版本是5.6的,在项目里面都是正常运行的,今天同事说他买了MySQL8的,让我切换一下看看有没有问题。我就马上把env文件的mysql配置改了一下,
DB_CONNECTION=mysql
DB_HOST=xxxx.mysql.rds.aliyuncs.com
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=test
DB_PASSWORD=XXXXXX
其他都没有变,然后随便运行一个接口,就报错:
<html>
<head>
<title>504 Gateway Time-out</title>
</head>
<body bgcolor="white">
<center>
<h1>504 Gateway Time-out</h1>
</center>
<hr>
<center>nginx/1.10.3 (Ubuntu)</center>
</body>
</html>
laravel.log日志如下:
[2022-08-04 04:58:57] local.ERROR: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution (SQL: select * from `user` where `id` = 1 limit 1) {"exception":"[object] (Illuminate\\Database\\QueryException(code: 2002): SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution (SQL: select * from `user` where `id` = 1 limit 1) at /home/vagrant/www/test/vendor/laravel/framework/src/Illuminate/Database/Connection.php:712)
在网上搜索了一番,发现要把DB_HOST改为ip地址的,试了之后。确实成功了。但是不知道为什么?【这个xxxx.mysql.rds.aliyuncs.com是公网地址】
看是不是写了内网地址