centos7 开启mysql5.7远程连接授权并连接
在centos7安装了mysql数据库,却发现只能本地连接,那么如何来实现远程连接呢, 下面就讲述如何开启mysql5.7远程连接授权并远程连接。
一、远程连接授权
如果要用第三方工具,如Navicat启用远程访问,是要授权的,因为mysql默认禁止远程访问
这里我们有两种方法,一种是下面这种sql语句授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'xxx' WITH GRANT OPTION;
其中%是指所有的ip地址,当然你可以设定具体的ip地址,把账户绑定在某个ip地址下; 而xxx具体就是指用户的密码,注意,这里是一个写法格式,root ,%和xxx都是可以换的
还有一种就是如下
查看表
show databases; -显示数据库
use mysql; -进入库
用select host,user from user;
命令发现root用户的host是localhost,localhost 表示只能进行本地访问,不能进行远程连接
我们修改一些权限即可,把root用户的host改为%
update user set host = "%" where user = "root";
最后再刷新一下权限就完成了,其实本质上跟第一种差不多,关键看你喜欢用哪种:
flush privileges;
弄完之后用Navicat测试连接,如果能连接上就是成功了,如若不能,那就可能是防火墙限制了。需要在防火墙里面加开放数据库端口的规则。所以我们还要多做一步:防火墙开放数据库端口(默认3306,可以在/etc/my.cnf中修改)
二、防火墙开放数据库端口
(如果防火墙没开就不用多此一举了)
1.查看目前防火墙,这是也是在root权限下执行的
firewall-cmd --list-all
可以看到这里开放端口是空的,3306很明显没有开放
2.开放3306端口
firewall-cmd --permanent --add-port=3306/tcp
显示成功
3.重启防火墙
弄完之后我们需要重新启动防火墙,避免一些不必要的错误
service firewalld restart
4.查看3306端口是否开放
重启后我们检查一下是否生效了
firewall-cmd --query-port=3306/tcp
可以再次查看现在防火墙firewall-cmd --list-all
5.最后再次测试是否可以远程连接
while____: 要指令关闭防火墙!!! Alt+T打开终端,输入sudo ufw status回车,查看防火墙状态,inactive是关闭,active是开启。 使用sudo ufw enable开启防火墙。 使用sudo ufw disable关闭防火墙。
weixin_52117371: 逗号前面有个空格
Kwok_gyg: 请问您是怎么进行配置的
仲基: 我也是,兄弟解决了吗
ALPACA陈若非: 进入 hosts属性 对话框,点击 安全, 点击 高级 在 hosts的高级安全设置 对话框中,点击 更改权限 用户权限方框打勾