zoukankan      html  css  js  c++  java
  • 主机无法连接虚拟机上的mysql

    昨天在虚拟机上搭建web项目环境时,想在主机上使用navicat访问虚拟机上的mysql数据库,报错大概是“hostxxx is not allowed to this mysql server”

    于是就检查防火墙,是关闭的,检查网络模式,是桥接模式,虚拟机也能和主机ping通。。。emmm那怎么办呢

    参看之前项目的安装文档,发现自己遗漏了这么两句配置:

    cmd进入mysql,输入:

    GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

    (这表示赋予任何主机访问数据的权限,其中*.*表示可以访问mysql server上的任意数据库(全局权限),如果替换成a.*,即表示可以访问mysql server上的a数据库啦(表权限);

    其中%可以替换为具体的ip地址,如192.168.12.80,表示赋予该主机访问虚拟机mysql server的权限)

    再输入:

    FLUSH   PRIVILEGES;

    (这表示刷新MySQL的系统权限相关表,如果授权之后不加这条命令,上面的授权就无法立即生效,除非重启mysql server


    这里还有一些补充问题,例如:flush privileges这条命令什么情况下需要执行;赋予权限之后如何撤回权限;

    在博客园发现了一位大佬总结的相关解释:https://www.cnblogs.com/gaosf/p/11189090.html

    实践发现:

    1、赋予全局权限后,命令是立即生效的,接下来创建的连接都可以使用新的权限,因此不需要再执行FLUSH   PRIVILEGES;

    2、取消权限:revoke all privileges on *.* from 'username'@'%';

         1)如果是新建的连接,可以看到因权限不足产生的临时库

        2)如果是已存在的连接,取消授权后,访问数据库中的表,会报错:


    2019/10/8

    防火墙未关闭的报错

    暂时的解决办法:

    service iptables stop  关闭防火墙,设置后即时生效,重启后会复原

    查看防火墙状态 service iptables status

    永久的解决方法:

    chkconfig iptables off 关闭防火墙,设置后重启生效,重启后不复原

  • 相关阅读:
    浅谈.NET和JAVA的跨平台
    ADO.NET获取TIPTOP存储过程的返回值
    Hide DataGrid Columns via HeaderText
    笑话一则:开车的最高境界
    [推薦]面试时最常问的15问题
    美国小学生守则 VS 中国小学生守则
    Embedded UserControls: Revisited
    SOA认识存误区 详解SOA企业部署的六大关键要素
    Java、.NET,为什么不合二为一?
    [轉]informix语句祥解
  • 原文地址:https://www.cnblogs.com/Ternura-1023/p/11434947.html
Copyright © 2011-2022 走看看