给mysql账号授权
8.0前【也可能更之前,我没测】:
grant all privileges on *.* to ‘账号’@'服务器ip【如果服务器端口号不是3306,不知道加不加端口号,我没测】' identified by "密码" with grant option;
这会报语法错误 说是在 ' identified by 附近【实际上就是在它之前】,实际上mysql8不支持这种语句了【你可能想把他粘到navicat修改一下语法。。。。navicat就是一个窗口而已,他连接哪个版本服务器就遵循哪个服务器的语法,他自己没有语法,亲】。
修改host:update user set host='%' where user='账户名';
再执行两次
Grant all privileges on test.* to '账户名'@'%';
成功:
接下来用navicat访问的话,可能会报一个密码加解密方式不匹配的问题:把加密方式变更为mysql_native_password,
大家自己访问mysql服务器上的mysql库中的user表就会找到这个名为plugin加密方式字段。另外说一句,mysql8中的密码字段已经不叫password了【这是挖的哪门子坑】
alter user 账户名 identified with mysql_native_password by '你的密码';
最后记得做刷新
flush privileges;