mysql 远程访问

文章介绍了如何开启MySQL的远程访问权限,包括创建用户、授予权限和刷新权限的步骤。同时,提到了服务器防火墙可能阻止MySQL的3306端口访问,需要开放相应端口。此外,还讨论了通过Java进行监控以及创建复制用户的相关设置。
摘要由CSDN通过智能技术生成

原因1:

MySQL的远程访问权限未开放

# 查看当前远程连接的权限
select User,authentication_string,Host from user;
# 创建用户远程访问权限
create user root@'%' identified by '123456';
# 允许指定主机(IP地址)访问权限
grant all privileges on test.* to '用户名'@'ip地址' identified by '密码';
# 无法创建请删除重新试一遍
drop user root@'ip地址';
# 赋予用户操作的全部权限
grant all privileges on *.* to root@'%';
# 刷新指令
flush privileges;

为了防止类似问题,要通过java自动监控

1、主库创建一个用于复制的用户

mysql> create user 'repl'@'%' identified by '123456';

2、将replication slave,replication client 授权到repl用户

给他所有权限,这样才能通过java执行show slave status 命令

mysql> grant all on *.* to 'repl'@'%';

3、刷新权限

mysql> flush privileges;

查看权限

mysql> show grants for 'repl'@'%';

原因2:

服务器开启了防火墙,导致MySQL的访问端口无法使用

如果服务器开启了防火墙,并且未设置MySQL端口开放策略,那么你将无法通过对应的端口远程访问MySQL。

解决方案:

关闭防火墙,或者开放对应的MySQL端口即可,比如默认的MySQL端口是3306,开放他就行。

常见命令如下:

# 查看防火墙状态

firewall-cmd --state

# 启动防火墙

systemctl start firewalld.service

# 关闭防火墙

systemctl stop firewalld.service

# 设置开机自启动

systemctl enable firewalld.service

# 开放防火墙端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

# 重新加载配置

firewall-cmd --reload

# 查看开放的防火墙端口

firewall-cmd --zone=public --list-ports

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值