Plesk nginx Ubuntu 16 - 外部MySQL连接被拒绝

时间:2018-05-03 11:42:30

标签: mysql nginx plesk

我需要与MySQL的外部连接。使用Plesk / Ubuntu 16 / nginx。在防火墙策略中,允许来自任何IP的端口3306。

它是否会被允许进入其他地方?如果是,那么需要编辑哪个文件?

2 个答案:

答案 0 :(得分:1)

您必须对MySQL配置进行更改,并允许用户进行远程访问。

1。打开MySQL配置文件。对于基于RHEL的发行版 - /etc/my.cnf,基于Debian的发布 - /etc/mysql/my.cnf

2。将bind-address参数更改为bind-address = 0.0.0.0,并确保未定义skip-networking参数。

3。重启MySQL守护进程:

# service mysql restart

或者:

# service mysqld restart

或者:

# service mariadb restart

服务名称取决于已安装的MySQL版本。如果你不确定,你可以做三件事。除非在my.cnf中发生错误,否则不会造成任何伤害。

4。授予对远程IP地址的访问权限并登录MySQL。例如,如果您希望允许用户database访问名为user的数据库,密码为password,远程IP地址为203.0.113.2

GRANT ALL ON database.* TO user@'203.0.113.2' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

要创建有权访问所有数据库的用户,请执行以下查询:

GRANT ALL PRIVILEGES ON *.* TO 'user'@'203.0.113.2' IDENTIFIED BY 'password' REQUIRE NONE WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
FLUSH PRIVILEGES;

5。您可以使用netstat验证MySQL服务器是否正在侦听正确的IP地址。以下是所需的输出 - 0.0.0.0地址:

# netstat -anp | grep :3306
tcp6       0      0 0.0.0.0:3306            :::*                    LISTEN      2723/mysqld

答案 1 :(得分:0)

netstat结果:

netstat -anp | grep :3306
tcp6       0      0 127.0.0.1:3306          :::*                    LISTEN      1003/mysqld