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

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

看是不是写了内网地址

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年前 评论

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