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

Plesk nginx Ubuntu 16 - external MySQL connection refused

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

是否在其他允许的地方?如果可以,需要编辑什么文件?

您必须更改 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。例如,如果您想要允许用户 user 使用密码 password 和远程 IP 地址 203.0.113.2:

访问名为 database 的数据库
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

网络统计结果:

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