zoukankan      html  css  js  c++  java
  • 客户端不能连接MySQL

    客户端不能连接MySQL

      场景:

        数据库(此处以MySQL为例)安装在虚拟机里面,在宿主机上进行连接数据库的时候始终不能连接,但在虚拟机中使用正常。

      

      

      针对上面的场景:

        1. 在虚拟机里面可以正常使用MySQL

        2. 在宿主机上进行连接的时候,始终不能连接

      

      解决方案:

        第一步:检查账号是否支持远程链接?

         相关操作指令:

          # mysql -uroot -p     使用root用户链接mysql    

          # show databases             查看已有的数据框(主要是为了找:mysql 这个数据库)

          # use mysql             使用mysql这个数据库

          # select user,password,host from user;      查询已有的数据库账号

          

          

          注意:

            一定要有那个带有%的一条记录。

            % 表示:允许所有的ip进行连接,如果这里是一个ip地址:192.168.1.100,也就说,允许192.168.1.100这个ip的电脑进行连接。

            如果没有这条记录,需添加(即:创建账号或者进行修改账号的host为%),这里进行添加 :

            # insert into user(user,password,host) values('learn',password('learn'),'%')

            # commit;

            #  grant all privileges on learn.* to learn@'%';       将learn这个数据库的所有操作权限给learn这个用户

            # flush  privileges;

         

        第二步:检查 防火墙(linux)是否关闭?或者释放了3306(如果防火墙关闭了,就无需释放)

          解决方法一:直接关闭防火墙,如下

          #  firewall-cmd --state 

          如果是开着的,直接关闭,使用指令,

          # systemctl stop firewalld

          如果把防火墙关闭了,就可以直接连接mysql了

          但是每次重启或者关机后还要重新来 一遍,麻烦,所以我用方法二,开放MySQL专用的端口3306就可以了啊

          解决方法二:开放MySQL专用的端口3306,如图

          

           查看是否已经开放3306端口

          firewall-cmd --query-port=3306/tcp

          开放端口3306

          firewall-cmd --permanent --add-port=3306/tcp

          重启防火墙

          firewall-cmd --reload

          问题解决

       以上两步基本上就可以解决问题了。

       上面的指令是针对CentOS 7.x版本的。

  • 相关阅读:
    (网页)中的简单的遮罩层
    (后端)shiro:Wildcard string cannot be null or empty. Make sure permission strings are properly formatted.
    (网页)jQuery的时间datetime控件在AngularJs中使用实例
    Maven Myeclipse 搭建项目
    MyBatis 环境搭建 (一)
    java 常用方法
    XML 基础
    JS BOM
    js 事件
    js 的使用原则
  • 原文地址:https://www.cnblogs.com/will-wu/p/12942586.html
Copyright © 2011-2022 走看看