Mysql远程连接本质
最近在弄mysql远程连接。因为对MySQL数据不熟,再加上网上的答案很笼统,写答案是对的,但表达的意思很模糊.下面是小编跟大家分享的是Mysql远程连接本质,欢迎大家来阅读学习~
Mysql远程连接本质
方法/步骤
先说本质。在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 ;
然后退出即可。
下面贴上步骤以及图解
1、进入mysql数据库
mysql -u root -p;
2、找到mysql.user表
select user,host from mysql.user;
3、修改表 Host项
update user set host = '%' where user = 'root';
(可查看确定修改成功没有 select user,host from mysql.user;)
4、给与任何主机访问数据的权限。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '这里面填你的mysql密码' WITH GRANT OPTION
5、让你的修改生效:
FLUSH PRIVILEGES ;