【问题标题】:Connect to Mysql database from remote从远程连接到 Mysql 数据库
【发布时间】:2020-05-05 16:30:49
【问题描述】:

问题: 我有安装 Laravel 应用程序和数据库的服务器。但我想与另一台服务器共享同一个数据库。我想启用远程访问。

我尝试了什么: 我更改了配置文件 /etc/mysql/mysql.conf 注释掉bind-address = 127.0.0.1

也改成bind-address = 0.0.0.0bind-address = *,没用 (这就是我发现的所有地方)

ufw 被禁用

netstat -ltn 返回

Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN     

127.0.0.1:3306 不是应该是 0.0.0.1:3306 吗?

我尝试从另一台服务器连接

mysql -h xxx.xxx.xxx.xxx -u pf_remote -p

我有错误

Can't connect to MySQL server on 'xxx.xxx.xxx.xxx' (111)

我认为那个端口没有打开,但我还能在哪里打开。我错过了什么吗?

【问题讨论】:

  • grant privileges了吗?
  • @Jamie_D 是的,我授予 ``` GRANT ALL PRIVILEGES ON . TO 'USERNAME'@'1.2.3.4' IDENTIFIED by 'PASSWORD' WITH GRANT OPTION;```和FLUSH PRIVILEGES;

标签: mysql ubuntu server


【解决方案1】:

找到mysql.conf并设置

bind-address=0.0.0.0

然后登录 MySQL 并运行以下 2 个命令

GRANT ALL PRIVILEGES ON *.* TO 'pf_remote'@'%' IDENTIFIED BY 'your_password' with grant option;
flush privileges;

然后

sudo service mysql restart

然后还要确保您没有任何防火墙阻止连接,检查通过

sudo ufw status

如果启用,则允许远程连接到 MySQL 端口

sudo ufw allow 3306 && sudo ufw reload

如果您使用的是 Amazon Web Services 服务器,则允许来自 shell 的连接将不起作用,您必须允许来自 AWS Dashboard 的连接

【讨论】:

  • 我试过了,在 utf allow 3306 之后似乎端口仍然关闭
  • sudo ufw reload了吗?请分享sudo ufw status verbose的输出
  • ufw 显示端口处于活动状态 3306 ALLOW IN Anywhere 3306 (v6) ALLOW IN Anywhere (v6) ``` 但是当我运行端口扫描时,它仍然显示端口已关闭
  • 服务器提供商是谁?数字海洋? AWS?
  • 两者都没有 - Flaunt7
【解决方案2】:

尝试授予用户远程访问权限:

 mysql> GRANT ALL ON yourDatabase.* TO user@'1.2.3.4' IDENTIFIED BY 'yourPassword';

另外请记得在配置更改后重启你的mysql服务:

sudo /etc/init.d/mysql restart

【讨论】:

  • 您应该检查您的服务器是否正在运行APF 或其他一些高级防火墙保护。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-14
  • 1970-01-01
  • 1970-01-01
  • 2013-05-07
  • 2018-11-24
相关资源
最近更新 更多