Laravel & DigitalOcean - Remote Access to mysql from DigitalOcean Droplet gives this error: SQLSTATE[HY000] [2006] MySQL server has gone away;

Laravel & DigitalOcean - Remote Access to mysql from DigitalOcean Droplet gives this error: SQLSTATE[HY000] [2006] MySQL server has gone away;

我在 digitalocean droplet (Ngnix Ubuntu) 上托管了我的 laravel 应用程序。这方面的一切都运作良好。

我需要测试 远程 访问 到 mysql.

  1. 首先,从 Droplet 的角度来看,我已经授权任何人访问 mysql 此命令的 IP 地址:sudo ufw allow 3306

  2. 为了测试远程访问,我尝试将本地主机 laravel 应用连接到 Droplet 的 mysql 数据库。

DB_HOST= here I've put the Ip address of the droplet.
DB_PORT=3306
DB_DATABASE=dbname
DB_USERNAME=dbuser
DB_PASSWORD=dbpass
  1. 它给出了这个错误:
    SQLSTATE[HY000] [2006] MySQL server has gone away (SQL: select * from 'users' where 'username' = admin limit 1)

我尝试了很多搜索..尝试了一些建议..仍然没有解决方案。

编辑:这是 /etc/mysql 中的 my.cnf 文件 ..

提前致谢!

对于Laravel,你不必放你的水滴IP,你必须放127.0.0.1localhost.

并且为了测试远程访问(不是通过 Laravel),请正常尝试(使用 droplet ip 或域名),如果错误继续存在,则必须绑定(在 MySQL config) 你的 Droplet 本地 IP(肯定是被注释掉了,它应该是 bind-address 之类的东西)。

查看 this 了解更多信息。

实际上,当我创建另一个 mysql 用户并授予该用户任何 ip 访问权限时,它就起作用了。看这里:Allow all remote connections, MySQL