windows下用navicat远程链接虚拟机Linux下MySQL数据库

Posted Undefined丶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,链接测试,如下图,成功。

  

以上是关于windows下用navicat远程链接虚拟机Linux下MySQL数据库的主要内容,如果未能解决你的问题,请参考以下文章

微信开发LINUX-windows下用navicat远程链接虚拟机Linux下MySQL数据库

在windows中使用Navicat连接Linux虚拟机中的mysql数据库

windows下用XShell远程ubuntu时连接失败

Navicat for MySQL远程连接虚拟机

navicat 远程连接虚拟机MYSQL数据库

Navicat和MySQL的故事之“使用Navicat远程连接装在虚拟机centos上的mysql服务器问题总结”