zoukankan      html  css  js  c++  java
  • windows下用navicat远程链接虚拟机Linux下MySQL数据库(测试可行)

     今天想用navicat远程连接虚拟机中的MySQL数据库,一直连不上,在网上搜索了一下,发现原因是MySQL对远程用户登陆的授权问题。这里说一下我的解决方法。(我遇到的主要问题是没有清除防火墙中链中的规则) 

    首先,我用navicat去远程链接我虚拟机中的MySQL,链接测试失败。

    然后在虚拟机中查看网络端口信息:

    #netstat -ntpl

    之后查看了防火墙的状态,发现3306端口的数据包都是丢弃状态

    #iptables -vnL

    这里要清除防火墙中链中的规则(我的一直不成功就因为没清除防火墙中的规则,虽然我的防火墙是关闭状态,但也要清除。)

    #iptables -F

    在这之后,我又远程链接了一下MySQL,出现了以下错误,查了一下,是因为MySQL没有允许远程登陆,所以要授权MySQL远程登陆。

    这里先说一下MySQL登陆:

    格式: mysql -h主机地址 -u用户名-p用户密码


      1、例1:连接到本机上的MYSQL
      找到mysql的安装目录,一般可以直接键入命令mysql -uroot -p,回车后提示你输密码,输入密码,直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>

      2、连接到远程主机上的MySQL
        假设远程主机的IP为:10.0.0.1,用户名为root,密码为123。则键入以下命令:
      mysql -h10.0.0.1 -uroot -p123
    (注:p与123(密码)之间最好不加空格,其它也一样)

      3、退出MySQL命令
    exit (回车)

    最后授权MySQL,允许远程用户登录访问MySQL

      手动增加可以远程访问数据库的用户。

    方法一、本地登入mysql,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,将"localhost"改为"%"(我才用的这个办法)

    #mysql -u root -proot
    mysql>use mysql;
    mysql>update user set host = '%' where user = 'root';
    mysql>select host, user from user;


    方法二、直接授权(推荐)

    从任何主机上使用root用户,密码:youpassword(你的root密码)连接到mysql服务器:
    # mysql -u root -proot 
    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;

    操作完后切记执行以下命令刷新权限 
      FLUSH PRIVILEGES

      这时再通过navicat远程链接MySQL,链接测试,如下图,成功。

  • 相关阅读:
    存储过程之基本语法
    SQL存储过程概念剖析
    SQL2005之SA提权总结
    关于存储过程
    Java开发环境之------MyEclipse快捷键和排除错误第一选择ctrl+1(***重点***:ctrl+1,快速修复---有点像vs中的快速using
    MyEclipse Servers视窗出现“Could not create the view: An unexpected exception was thrown”错误解决办法
    艾泰路由器端口映射怎么设置
    常用端口
    jdbc注册驱动 class.forName()
    MyEclipse不能自动编译解决办法总结
  • 原文地址:https://www.cnblogs.com/xiaogou/p/11658608.html
Copyright © 2011-2022 走看看