我正在学习 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';
希望这对其他人有帮助。