多语言展示
当前在线:696今日阅读:19今日分享:20

Mysql远程连接本质

最近在弄mysql远程连接。因为对MySQL数据不熟,再加上网上的答案很笼统,写答案是对的,但表达的意思很模糊,所以总结了网上诸多经验,系统的分析一下,供自己以后方便查阅。
方法/步骤
1

先说本质。在mysql数据库里面。有个表,叫user。里面存放的便是登录用户的信息。如果是命名行则可以通过 use mysql;    show tables;2个命名语句显示出user表*(在最末尾)。在user表里前2列有Host,User 2列。默认对应的是localhost,User。 在这里Host的值便是数据库访问权限。loaclhost指的是本机的意思。也就是只有本机可以访问该数据库。查看cmd命名 select user,host from mysql.user;(如果已经是使用了use mysql.则直接from user);说到这里,大家就应该知道了。数据库访问权限由在这个Host列决定。所以,接下来我们只需要把localhost换成我们想要的ip或者开发全部ip(% 等于数据库允许所以的ip链接)修改方法,可视化直接修改。 CMD命名: update user set host = '%' where user = 'root'; (为了确保修改成功,可执行上面查看语句);修改成功后,host = %,user =root。 到这儿就还差一个重要的权限赋予了;执行(CMD与可视化均执行)这句话:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '这里面填你的mysql密码' WITH GRANT OPTION   这句的意思是。予任何主机访问数据的权限 。至此权限开放成功。最后一个步骤便是 让你的修改生效:FLUSH PRIVILEGES ;然后退出即可。下面贴上步骤以及图解

2

1、进入mysql数据库  mysql -u root -p;2、找到mysql.user表select user,host from mysql.user;

3

3、修改表 Host项  update user set host = '%' where user = 'root';(可查看确定修改成功没有 select user,host from mysql.user;)

4

4、给与任何主机访问数据的权限。GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '这里面填你的mysql密码' WITH GRANT OPTION

5

5、让你的修改生效:FLUSH PRIVILEGES ;

注意事项
1

该文档总结网上的,由作者自己思考整理。不完善之处,请谅解

2

提供了 可视化 navicat 列,与CMD命名模式2种方法

推荐信息