目录
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,问题成功解决!