Mysql远程连接本质

2017-06-01

最近在弄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 ;

更多相关阅读

最新发布的文章