MySQL数据库授权远程登录(Windows/Linux)

我们在刚学习MySQL数据库时一般都是连接localhost然后登录root用户创建数据库进行操作,在后续的使用过程中产生了通过其他主机来访问自己的数据库的需求,本文在这里介绍两种MySQL数据库远程登录的授权方法。

以下两种方法都是基于MySQL命令行模式进行操作的,分别是改表法和授权法。

图片[1] - MySQL数据库授权远程登录(Windows/Linux) - 登山亦有道

1.改表法:

当你的帐号不允许从远程登陆,只能在localhost连接时。这个时候只要在mysql服务器上,更改 mysql 数据库里的 user 表里的 host 项,从localhost"改成%即可实现用户远程登录

在安装mysql的机器上运行:

#1. 输入密码登录mysql,执行第二步之前需要先使用:use mysql来选中mysql这个表!
mysql -u root -p

use mysql  

#2. 查看mysql这个表的内容
select host,user from user where user='root';

#3. 将表内的localhost这个值更新为'%'  
update user set host = '%' where user='root' and host='localhost';

#4. 
select host, user from user where user='root';

Q:为什么要把表内localhost更新为'%'

Host列表指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。
而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=%,表示所有IP都有连接权限。

2.授权法:

1.允许user使用password从任何主机连接到mysql服务器的话。(所有用户授权)

在安装mysql的机器上运行:

#1. 授权用户访问数据库
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; 

#2.刷新MySQL的系统权限相关表
FLUSH   PRIVILEGES;#注意授权后必须FLUSH PRIVILEGES;否则无法立即生效.

#3.将'user'和'password'字段修改为你的数据库用户名和密码(注意)。

2.允许用户user从ip为192.168.2.158的主机连接到mysql服务器,并使用password作为密码(单用户授权)

#1.授权用户访问数据库
GRANT ALL PRIVILEGES ON . TO 'user'@'192.168.2.158' IDENTIFIED BY 'password' WITH GRANT OPTION;

#2.刷新MySQL的系统权限相关表
FLUSH PRIVILEGES;

#3.将'user'和'password'字段修改为你的数据库用户名和密码。

3.基于mysql的分支MariaDB使用授权法连接远程数据库(主要区别是命令使用小写以及user名称不带 ' ' )

#1.执行命令输入你的密码,进入数据库
mysql -u root -p 

#2.下面命令中root替换为你自己的数据库用户  'password'替换为你自己的密码
grant all privileges on *.* to root@'%' identified by 'password' with grant option;

#3.刷新MySQL的系统权限相关表
flush privileges; 

以上为授权用户远程访问MySQL数据库的两种方法。

参考链接:

登山亦有道 记录日常,每天进步一点点。 (chenyan98.cn)

MySQL数据库远程访问权限如何打开(两种方法) - panie2015 - 博客园 (cnblogs.com)

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发
匿名的头像 - 登山亦有道
提交
匿名的头像 - 登山亦有道

昵称

在 WordPress 上使用 Sticker Heo 增添互动时的乐趣吧 !

取消
昵称表情代码图片

    暂无评论内容