外部mysql连接被拒绝

i7uaboj4  于 2021-06-21  发布在  Mysql
关注(0)|答案(2)|浏览(419)

我需要外部连接到mysql。使用plesk/ubuntu16/nginx。在防火墙策略中,端口3306允许来自任何ip。
是不是应该放在别的地方?如果是,需要编辑什么文件?

a2mppw5e

a2mppw5e1#

netstat结果:

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

1cosmwyk2#

您必须更改mysql配置,并允许用户进行远程访问。
1打开mysql配置文件。对于基于rhel的发行版- /etc/my.cnf ,对于基于debian的- /etc/mysql/my.cnf .
2改变 bind-address 参数到 bind-address = 0.0.0.0 确保 skip-networking 参数未定义。
三。重新启动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 . 以下是所需的输出- 0.0.0.0 地址:


# netstat -anp | grep :3306

tcp6       0      0 0.0.0.0:3306            :::*                    LISTEN      2723/mysqld

相关问题