Mysql配置远程连接

本文介绍了解决MySQL远程访问权限问题的方法,包括更新root用户的host字段为'%'以允许外网访问,以及如何在遇到权限丢失时通过禁用授权表来恢复root用户的完整权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

解决外网不能访问的问题。

mysql> select host, user from user; 
+--------------+------+
| host         | user |
+--------------+------+
| 127.0.0.1    | root |
| iz25phahu3az |      |
| iz25phahu3az | root |
| localhost    |      |
| localhost    | root |
+--------------+------+
5 rows in set (0.00 sec)

mysql> update user set host = '%' where user = 'root';
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
mysql> select host, user from user; 
+--------------+------+
| host         | user |
+--------------+------+
| %            | root |
| 127.0.0.1    | root |
| iz25phahu3az |      |
| iz25phahu3az | root |
| localhost    |      |
+--------------+------+
5 rows in set (0.00 sec)

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



注意,这样配置完后会出现一个问题。
我们用远程连接没事,但ssh上去用root就会出现问题,root没有权限了。
这样解决:

       1. 关闭mysql,service mysqld stop

  2. 启动mysql: mysqld_safe --skip-grant-tables

  3. 再打开一个ssh连接服务器,进行mysql操作

  [root@localhost ~]#mysql

  Welcome to the MySQL monitor. Commands end with ; or \g.

  Your MySQL connection id is 7

  Server version: 5.0.77 Source distribution

  Type 'help;'or '\h' for help. Type '\c' to clear the buffer.

  mysql>show databases;

  在这个模式下是可以看到mysql数据库的。

  在数据库名mysql下的user表中,修改相应权限,比如:

  INSERT INTO `user` VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);
      
       这一串太长了,我懒得一个一个写了,然后直接改的127.0.0.1那条记录的Host字段为localhost

  如果已经存在了host为localhost的记录,则先删除该记录,delete from userwhere host='localhost';

  然后再进行INSERT INTO `user` VALUES ('localhost','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0);

  操作。

  操作完成后,将两个ssh连接都关闭,然后再重新连接一个ssh,启动mysql,service mysqld start,然后用mysql命令连接mysql数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值