本篇记录了我在遇到该问题,解决该问题的全部过程,相信自己,还是很强大的,希望对遇到相似问题的网友有所帮助~
本人Linux 服务器,Centos 7版本,Mysql 5.7.14。。。
最初问题: 使用Navicat远程连接数据库,正常,操作现有数据库正常,创建新数据库报错Access denied for user 'root'@'%' to database 'xxxx',如下图:
使用SSH连接服务器,进入mysql,命令行执行创建数据库,依然是出现同样错误
以此推断,问题出在数据库,并非远程连接或Navicat。
猜测“访问操作被拒绝”是不是没有权限?给用户授权试一试
使用命令行执行 grant all privileges on *.* to 'root'@'%' identified by '数据库密码' with grant option;
于是乎第二个问题出来了:ERROR 1045 (28000): Access denied for user 'root'@'%' (using password: YES)
有点蒙了,不知所措。。这都报错,我还怎么整,要不卸载了重装?答案是“NO,我很坚强,哈哈哈哈。。。”
百度搜索,各种关键词查询。。。
。。。
此处省略,各种解决方案挨个试。。。
。。。
完蛋玩意儿,根本解决不了~~~
既然还不行,那我就看看root用户有多少权限吧,是不是有欠缺。。
切换到mysql库,命令行执行:select host,user,grant_priv,super_priv from user;
看到的信息太少了,root用户看到的这些都没问题,于是乎多查询些信息,找有用的。执行select * from mysql.user;
果不其然!!! 发现了问题,就是权限问题
解决: 执行命令给授权 update mysql.user set Insert_priv='Y',Update_priv='Y',Delete_priv='Y',Create_priv='Y',Drop_priv='Y' where user = 'root' and host = '%';
执行flush privileges;
刷新权限,退出登录。重启mysql服务。注意:一定要重启
登录mysql,执行授权命令grant all privileges on *.* to 'root'@'%' identified by 'nopassword' with grant option;
授权成功!第二个问题解决了。。。
执行命令create database ruoyi;
创建数据库,成功,切换数据库查看。