laravelmysql 8连接超时

weylhg0b  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(530)

我是laravel和mysql的初学者。
我有一个带有laravel5.6和mysql 8的vm。我已经配置了mysql,这样我就可以使用mysql workbench登录,一切正常,但是当我尝试在laravel中执行查询时,我得到了一个错误:

Illuminate \ Database \ QueryException (2002) 
SQLSTATE[HY000] [2002] Connection timed out (SQL: select * from `users`)

我的虚拟机有一个静态ip 192.168.56.3 和dhcp 192.168.56.1 . 通过mysql workbench,我可以连接 192.168.56.3 ,但在laravel中,这个ip给了我一个错误:

PDOException (2006)
SQLSTATE[HY000] [2006] MySQL server has gone away

另一个ip 192.168.56.1 给我一个超时错误。
我的 .env 文件是:

DB_CONNECTION=mysql
DB_HOST=192.168.56.3
DB_PORT=3306
DB_DATABASE=laravel_db
DB_USERNAME=laravel_user

还有我的 .cnf 低于 [mysqld] 是:

datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
port            = 3306
basedir         = /usr
tmpdir          = /tmp

# bind-address    = 192.168.56.3
qyzbxkaa

qyzbxkaa1#

我知道已经有一段时间了,但我找到了答案。使用以下命令用新的身份验证插件更新密码。现在可以使用mysql 8了。玩得高兴。

ALTER USER `username`@`localhost` IDENTIFIED WITH caching_sha2_password BY 'password';

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

相关问题