MySQL新老版本设置远程连接
简述
因为最近项目赶工要把网站部署到服务器上,团队的另一个队友很神奇的把服务器重置,并且把数据库直接线安了个最新版本的MySQL,本人本地数据库版本是5.6.24,因为里面太多数据,所以一直没升级,直到被坑了一波去捣鼓服务器上的8版本的MySQL,才发现两者居然差别那么大。
MySQL版本5的设置远程连接
其实网上好多方法都是针对5版本的,主要是很多人都像我一样不愿冒险去升级数据库。毕竟出啥出错无异于删库到跑路,更多的是觉得5版本的已经足够业务需求了,并且上手惯了。
1、登录MySQL
mysql -u root -p
2、查看mysql数据库中的user表信息
选择mysql数据库
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
查看user表中当前root的用户信息
select host, user, authentication_string, plugin from user;
如果root用户中的host默认显示localhost,表示只支持本地访问,不支持远程。
3、设置root用户授权所有权限
CREATE USER 'root'@'%' IDENTIFIED BY '你的密码';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
4、允许远程访问
最后设置为远程登录
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
GRANT ALL ON 表示所有权限,% 表示通配所有 host,可以访问远程。
5、刷新权限
flush privileges;
MySQL版本8的设置远程连接
其实新版本的MySQL在前面1、2、3步都一样,但是当你执行到4时,会报错
这个错误一直困扰我好久,直到多次查阅网上的资料,才知道原来新版的的mysql版本已经将创建账户和赋予权限的方式分开了。
所以正确的姿势应该是
create user ‘root’@’%’ identified by ‘密码’;
赋权远程访问
grant all on 要远程访问的数据库名 to ‘root’@’%’ with grant option
修改权限时在后面加with grant option.
最后记得刷新权限
flush privileges;
参考博客
新版SQL授权用户时报错 near ‘IDENTIFIED BY ‘密码’ with grant option’ at line 1
本文详细介绍了如何在MySQL5和8版本中设置远程连接,包括登录MySQL、查看user表信息、设置root用户授权、允许远程访问及刷新权限等步骤。特别指出,MySQL8在创建账户和赋予权限时有所不同。
1万+

被折叠的 条评论
为什么被折叠?



