无法使用 AWS 实例(LEMP)上的 php 脚本连接到 mysql 数据库

无法使用 AWS 实例(LEMP)上的 php 脚本连接到 mysql 数据库

我正在学习 AWS EC2 来托管基于 WordPress、Laravel 和自定义 PHP 脚本制作的网站。

我创建了一个 t2.small 实例,以 ubuntu 18.04 作为我的操作系统。

然后我阅读了教程并安装了最新版本的 Ngnix 服务器、MySQL 8 和 PHP 7.3。我能够配置它们,并且一切正常。

然后我创建了一个新的 MySQL 用户和数据库。授予该用户对数据库的所有权限,并通过 SSH 使用命令行对其进行检查。一切正常。

我在 nginx 中创建了一个新的服务器块并配置了我的域,迁移了网站(WordPress)。在 中更改了数据库用户名、密码(我创建的密码)wp-config.php。但是当我访问我的域时,我得到了 Error establishing a database connection

我仔细检查了数据库详细信息和设置,一切正常。那么为什么 PHP 脚本无法连接数据库?我遗漏了什么吗?我想我不需要打开端口 3306?由于我的数据库主机是localhost,我不需要打开它,对吗?

答案1

好的,问题似乎只出在MySQL 8

我能够通过参考以下答案来解决问题 -堆栈溢出

基本上,在为数据库创建用户时运行以下命令

CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

而不是这个

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

如果用户已经存在,运行以下命令

ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

希望这对其他人有帮助。

相关内容