【问题标题】:laravel mysql 8 connection time outlaravel mysql 8 连接超时
【发布时间】:2019-01-26 09:44:47
【问题描述】:

我是 Laravel 的初学者并正在配置 MySQL。

我有一个使用 Laravel 5.6 和 MySQL 8 的虚拟机。我已经配置了 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

而我在[mysqld] 下的.cnf 是:

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

【问题讨论】:

  • 试图连接到你的 DHCP 服务器 (192.168.56.1) 就好像它是一个 MySQL 服务器当然是行不通的
  • WorkBench 是否也安装在 VM 中?
  • 不,工作台在主机中
  • 那么你是如何配置 Laravel 来连接数据库的
  • 我猜应该使用 localhost127.0.0.1 因为 Laravel 和 MySQL 在同一台机器上

标签: php mysql laravel database-connection mysql-8.0


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2022-12-05
    • 2011-02-05
    • 1970-01-01
    • 2011-03-29
    • 2018-07-15
    • 2019-03-14
    • 1970-01-01
    • 1970-01-01
    • 2013-02-05
    相关资源
    最近更新 更多