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是公网地址】

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案

看是不是写了内网地址

1年前 评论
ModStart (作者) 1年前
bluememory (楼主) 1年前
bluememory (楼主) 1年前
讨论数量: 7

看是不是写了内网地址

1年前 评论
ModStart (作者) 1年前
bluememory (楼主) 1年前
bluememory (楼主) 1年前

楼上没错,看一下是否在一个内网,如果不在,申请公网链接地址

1年前 评论
bluememory (楼主) 1年前

遇事不要慌, 先用命令连下服务器

mysql -hxxxx.mysql.rds.aliyuncs.com -utest -p
1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!