Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > 开启MYSQL远程访问权限

MYSQL开启远程访问权限的方法

作者:三冬三夏

在本篇文章里小编给大家整理的是关于MYSQL开启远程访问权限的方法,对此有兴趣的朋友们可以跟着学习下。

MySQL远程连接(Linux)

以下MySQL远程连接:MySQL部署环境为Ubuntu,MySQL为5.7版本,本地搭建的数据库,只能使用局域网ip连接。

一、更改MySQL配置文件

进入mysql.conf.d目录,更改mysqld.cnf的配置信息

cd /etc/mysql/mysql.cnf.d

在这里插入图片描述

2. 使用root权限进入mysqld.cnf,建议使用vi编辑工具修改配置

sudo vi mysqld.cnf#输入root密码

在这里插入图片描述

# 按esc后,输入 :set number 即可显示行号
#按 i 可编辑
#找到bind-address =127.0.0.1注释
# 编辑完成后按 esc,然后输入 :wq ,即可保存退出

在这里插入图片描述

3. 重启mysql服务

sudo service mysql restart

在这里插入图片描述

二、进入MySQL修改用户表host值 使用root账号进入MySQL

mysql -uroot -p
#输入数据库root账号的密码

在这里插入图片描述

2. 进入mysql

在这里插入图片描述

3. 找到mysql 库 中的user表

# 展示mysql库中的所有表,user表在最后一个
show tables;

在这里插入图片描述

4. 查询user表中的用户

select host,user from user;

在这里插入图片描述

5. host 为远程连接登录地址,如修改为允许任何地址登录,设置为%即可,其他特定的登录地址输入地址修改。

update user set host="%" where user="root";

在这里插入图片描述

6. 修改成功后,需刷新权限

flush privileges;

修改成功后,查询user表中root的host值为%即成功修改

在这里插入图片描述

三、使用其他电脑即可远程访问数据库

mysql -h 数据库远程地址 -uroot -p
# 输入远程数据库的root密码

在这里插入图片描述

MySQL远程连接(Windows)

一、修改my.ini中的配置文件

找到MySQL安装目录下的my.ini配置文件。如果该文件不存在,需要创建一个。在[mysqld]部分添加或修改bind-address=0.0.0.0,以允许MySQL服务器监听所有IP地址上的连接

在这里插入图片描述

在这里插入图片描述

重启MySQL服务

打开命令提示符:以管理员权限打开命令提示符窗口(可以搜索cmd,然后选择“以管理员身份运行”)。停止MySQL服务:输入命令net stop mysql(假设服务名称为mysql),然后按回车执行。启动MySQL服务:输入命令net start mysql,然后按回车执行。
确认状态:可以在服务状态变化后输入sc query mysql来确认服务的状态,确保MySQL服务已经正确重启。

在这里插入图片描述

二、修改用户权限 MySQL

使用mysql -u root -p命令登录到MySQL服务器,输入root用户的密码

mysql -uroot -p# root 密码

在这里插入图片描述

进入mysql库,找到user表修改

use mysql;

在这里插入图片描述

select host,user from user;

在这里插入图片描述

update user set host="%" where user="root";

在这里插入图片描述

select host,name from user;

在这里插入图片描述

刷新权限:执行FLUSH PRIVILEGES;以应用更改

flush privileges;

在这里插入图片描述

三、远程连接

在远程终端连接:

mysql -h 数据库地址 -uroot -p# 密码

在这里插入图片描述

1、登陆mysql数据库

mysql -u root -p

查看user表

mysql> use mysql;
Database changed
mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host     | user | password                 |
+--------------+------+-------------------------------------------+
| localhost  | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
+--------------+------+-------------------------------------------+
2 rows in set (0.00 sec)

可以看到在user表中已创建的root用户。host字段表示登录的主机,其值可以用IP,也可用主机名,

(1)有时想用本地IP登录,那么可以将以上的Host值改为自己的Ip即可。

2、实现远程连接(授权法)

将host字段的值改为%就表示在任何客户端机器上能以root用户登录到mysql服务器,建议在开发时设为%。
update user set host = ’%’ where user = ’root’;

将权限改为ALL PRIVILEGES

mysql> use mysql;
Database changed
mysql> grant all privileges on *.* to root@'%' identified by "password";
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select host,user,password from user;
+--------------+------+-------------------------------------------+
| host     | user | password                 |
+--------------+------+-------------------------------------------+
| localhost  | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| 192.168.1.1 | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
| %      | root | *A731AEBFB621E354CD41BAF207D884A609E81F5E |
+--------------+------+-------------------------------------------+
3 rows in set (0.00 sec)

这样机器就可以以用户名root密码root远程访问该机器上的MySql.

3、实现远程连接(改表法)

use mysql;

update user set host = '%' where user = 'root';

这样在远端就可以通过root用户访问MySQL,如果大家有任何补充可以联系脚本之家小编。

您可能感兴趣的文章:
阅读全文