开发背景
MySQL Server version:5.7.34-log MySQL Community Server (GPL)
这个开发背景还是很重要的,因为不同的版本对应的命令可能存在差异的,所以开篇说明下会比较好。
起因
在本地用虚拟机搭建了后端的服务,以便开发时可以安心的对接接口了,再也不怕后端开/关服务器了,真香(当然,这个问题是没有办法避免了,因为处在开发阶段,我们只能说先对接他们做完了的,然后他们继续开发,我们对接),同时自己也能够了解一些后端的知识。
搭建的过程是很顺利的,但是通过Navicat连接虚拟机的数据库时,出了下面这个错误——1045 - Access denied for user 'root'@'主机地址'(using password: YES)。
经过了解,这个错误信息是说,当前电脑IP没有权限访问该数据库。
这个using password: YES
,我一直以为是输入的密码正确,这么久了才知道,原来意思是,有输入密码,对是,有输入密码。(我的天哪!)。
知道问题后,就好办了,那就添加权限呗。
注意:图片中被红色画笔模糊的是主机地址。
添加权限
注意:下方的所有语句都是在MYSQL中输入的,所以首先要先进入到MYSQL中,通过一些终端工具(如Xshell),连接上我们服务器后,输入下方的命令。
mysql -u用户名 -p密码
进入后就可以开始执行对应的MYSQL语句。
法一:
/* 提示: all——表示所有权限,当然也可以设置一些对应的权限,如select,insert,update,delete等等,更多的就自行搜索引擎了。 %——表示所有电脑IP,如果想特别指定一些电脑IP可以访问的话,改成对应的即可,改成192.168.1.6,即表示只有电脑IP是该IP的才可以访问) */ //授权用户(test01)所有权限,在所有的电脑上都可以访问数据库如果test01用户不存在的话则创建用户,密码为123456 grant all on *.* to 'test01'@'%' identified by '123456'; //撤销test01用户的所有授权(账号还在) revoke all on *.* from 'test01'@'%'; //删除test01用户和对应的权限 drop user test01@'%';
法二:
因为所有的权限,都是在mysql数据库里面的user表,所以我们操作user表,也就是在操作权限了,即跟上面的命令是相同的作用,那这里就不多说操作数据库的一些基本语句了(因为我都是用Navicat这类图形化界面操作的。)
以上所有操作完毕后,大家记得,还是在MYSQL中哦,执行这条语句。
//刷新MySQL的系统权限相关表,否则还是会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效 flush privileges;