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 增添互动时的乐趣吧 !

取消
昵称表情代码图片

    暂无评论内容