美文网首页
mysql开启远程访问

mysql开启远程访问

作者: LITSTONE | 来源:发表于2019-10-10 01:43 被阅读0次

    mysql安装踩坑指南

    我是在我的ubuntu server虚拟机中安装的mysql数据库,好久之前安装的,好像直接可以用命令安装,所以就不演示了。


    我的电脑之前一直是kali linux系统,用了一年多的操作系统,于2019年10月8日早上崩掉了(纪念一下陪我一年多的系统),修了一会儿没修好,就放弃了,不想折腾了,因此呢,找了一个不用折腾的系统(deepin),国产的,开机即用,真心方便呀。


    mysql的坑

    我的mysql在虚拟机里,之前的操作系统一直用着没问题,今天用我的主机连接虚拟机中的数据库,一直提示权限拒绝,就是下面这个样子的。


    mysqlconne_1570600418_1418573420.png

    开始,我还以为是我的虚拟机防火墙的问题,弄了半天防火墙还是不行。后来看了一下我的数据库的user表,终于意识到了问题所在,是因为我的user表中数据库的root用户只允许本机和我之前系统的那个IP地址访问。

    usertable_1570610880_2127488744.png

    后来我改了一下这个IP地址就好了,之前的IP是 192.168.205.1

    update user set host='172.16.223.1' where host='192.168.205.1'
    

    执行如上命令之后,我还是不能访问,搞了一会儿才知道是没有刷新缓存,执行下面的这条命令刷新一下就行了。

    flush privileges;
    

    MySql开启远程访问

    登陆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,也可用主机名,
    有时想用本地IP登录,那么可以将以上的Host值改为自己的IP即可。

    实现远程连接(授权法)

    将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.

    实现远程连接(改表法)

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

    这样在远端就可以通过root用户访问Mysql.

    相关文章

      网友评论

          本文标题:mysql开启远程访问

          本文链接:https://www.haomeiwen.com/subject/sannpctx.html