如何设置允许远程连接 MySQL 数据库(流程安装步骤)

为了安全,默认情况下MySQL 是不允许远程连接的,本教程将详细讲解如何开启 MySQL 数据库远程连接权限。

关闭防火墙

首先要关闭防火墙,或者开启MySQL的监听端口,默认为3306端口。

# systemctl disable firewalld --now

允许MySQL监听特定IP地址

默认情况下, bind - address 的值为 127.0.0.1 ,所以只能监听本地连接。我们需要将这个值改为远程连接 ip 可访问,可使用通配符 ip 地址 *, ::, 0.0.0.0 ,当然也可以是单独的固定 ip,这样就仅允许指定 ip 连接,更加安全。

下面我们来修改MySQL配置文件,让 MySQL 可以监听远程固定 ip 或者监听所有远程 ip。

备注:参考 MySQL数据库配置文件在哪里呢?查找MySQL配置文件的位置。

我这里修改的是 /etc/my.cnf.d/mysql-server.cnf

添加 bind-address=0.0.0.0 允许任何IP地址连接。

[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.socklog-error=/var/log/mysql/mysqld.logpid-file=/run/mysqld/mysqld.pidbind-address=0.0.0.0

创建远程登录用户

如果数据库进行了安全配置,那么root用户只能本机登录。

mysql> select user,host from user;+------------------+-----------+| user             | host      |+------------------+-----------+| mysql.infoschema | localhost || mysql.session   | localhost || mysql.sys         | localhost || root              | localhost |+------------------+-----------+4 rows in set (0.01 sec)

创建一个用户,用户名:'remote1'@'%' ,密码:password

注意:在MySQL 5.x版本直接在一条SQL中 就可以创建用户并授予权限;而8.x后,需要先创建用户,再GRANT权限。

CREATE USER 'remote1'@'%' IDENTIFIED BY 'password';

授权远程登录账户可以访问的数据库

MySQL授权语法:grant 权限列表 on 数据库.表 to '用户名'@'主机';

此外,grant用于增加用户权限,revoke用于删除用户权限。

# 授权用户('remote1'@'%')可以在任何远程主机访问 test数据库的任何表,并且具有授权权限 GRANT ALL PRIVILEGES ON test.* TO 'remote1'@'%' WITH GRANT OPTION;

最后刷新授权

flush privileges;

测试

点击测试连接

如何设置允许远程连接 MySQL 数据库(流程安装步骤)

测试连接成功

如何设置允许远程连接 MySQL 数据库(流程安装步骤)

远程连接到test数据库

参考

如何远程连接 MySQL 数据库,阿里云腾讯云允许远程连接教程(https://kalacloud.com/blog/how-to-allow-remote-access-to-mysql/)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论