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,如果大家有任何补充可以联系脚本之家小编。