• 客户端不能连接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版本的。

  • 相关阅读:
    java-垃圾回收机制
    Java 父类Object类的常用方法总结
    Java面试题-异常
    java面试题-多线程
    java面试题-java集合类
    java面试基础题整理学习
    解决Tomcat部署,运行start.bat闪退 警告 [main] org.apache.catalina.startup.Catalina.load Catalina.start using conf/server.xml: 元素类型 "Host" 必须由匹配的结束标记 "</Host>" 终止。
    JDK学习---深入理解java中的HashMap、HashSet底层实现
    java多线程批量读取文件( 八)--读写分离
    zookeeper集群(二)
  • 原文地址:https://www.cnblogs.com/will-wu/p/12942586.html
Copyright © 2020-2023  润新知