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
我需要 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