MySQL数据库无法远程访问,问题排查和解决方法,MariaDB数据库开启远程访问后不生效,仍无法进行远程访问

目录

1.核对信息

2.查看防火墙状态

3.给root用户赋权

4.数据库开启远程访问

5.MariaDB数据库补充


1.核对信息

确保数据库正常启动并且输入的数据库连接信息准确无误(ip、端口、用户名、数据库类型、所用驱动)

2.查看防火墙状态

如果为远程连接确保防火墙关闭或开放数据库端口(uos统信防火墙操作命令和普通国产有所不同)

查看防火墙状态:firewall-cmd --state
开启指定端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent
(–zone=public表示作用域为公共的
–add-port=3306/tcp添加tcp协议的端口端口号为3306
–permanent永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效;)
重新加载防火墙:firewall-cmd --reload
重启|停止|开启|永久关闭:systemctl restart|stop|start|disable firewalld.service

3.给root用户赋权

如果通过127连接请确保root用户有足够的权限

#查询当前用户及权限:
select * from mysql.user;
#用户赋权
GRANT ALL PRIVILEGES ON  *.* TO 'root'@'localhost' IDENTIFIED BY '123ABCdef*#' WITH GRANT OPTION;
#用户名为root,密码为'123ABCdef*#'的用户赋予所有的权限
#执行完上述命令后用下面的命令刷新权限
FLUSH PRIVILEGES;


4.数据库开启远程访问

如果为远程连接请确保数据库已开启远程连接

GRANT ALL PRIVILEGES ON  *.* TO 'root'@'%' IDENTIFIED BY '123ABCdef*#' WITH GRANT OPTION;
#任意ip地址连接的用户名为root,密码为'123ABCdef*#'的用户赋予所有的权限。其中的"%"为任意的ip地址,如果想设为特定的值也可以设定为特定的值(以通配符%的内容增加主机/IP地址,也可以直接增加IP地址)。
#执行完上述命令后用下面的命令刷新权限
FLUSH PRIVILEGES;


注意:

        '%'和localhost地址连接同时存在时,127.0.0.1会优先选择localhost这条用户信息的权限值;此时如果只给'%'赋权,通过127地址连接数据库仍然报错权限不够;

5.MariaDB数据库补充

        MariaDB数据库按照上述操作完成后,显示无法连接,依旧没有成功,修改配置文件/etc/mysql/mariadb.conf.d/50-server.cnf,然后找到bind-address一行,将bind-address = 127.0.0.1注释掉,再使用远程连接的方式进入mysql,问题成功解决!

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等到鸡吃完米

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值