zoukankan      html  css  js  c++  java
  • 远程访问mysql

    转载:http://www.codesky.net/article/201108/106005.html

     

    数据库不允许从远程访问怎么办?本文提供了三种解决方法:

      1、改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" 
      mysql -u root -pvmwaremysql>use mysql; 
      mysql>update user set host = '%' where user = 'root'; 
      mysql>select host, user from user;

      2、授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。 
      GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WI 
      TH GRANT OPTION; 
      如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码 
      GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 
      'mypassword' WITH GRANT OPTION; 
      我用的第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句 mysql>FLUSH RIVILEGES
      使修改生效,就可以了

      另外一种方法: 
      在安装mysql的机器上运行: 
      1、d:mysqlin>mysql -h localhost -u root 
      //这样应该可以进入MySQL服务器 
      2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION 
      //赋予任何主机访问数据的权限 
      3、mysql>FLUSH PRIVILEGES 
      //修改生效 
      4、mysql>EXIT 
      //退出MySQL服务器 
      这样就可以在其它任何的主机上以root身份登录啦。[/size] 
    ========================================================================
    mysql数据库远程访问设置方法

    1、修改localhost
    更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改成"%" 
    mysql>use mysql; 
    mysql>update user set host = '%' where user = 'root'; 
    mysql>select host, user from user;
    mysql>FLUSH PRIVILEGES;
    2、指定授权
    使用myuser/mypassword从任何主机连接到mysql服务器: 
    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
    使用myuser/mypassword从ip为192.168.225.166的主机连接到mysql服务器:
    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.225.166' IDENTIFIED BY 'mypassword' WITH GRANT OPTION; 
    3、泛授权
    mysql -h localhost -u root 
    mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; //赋予任何主机上以root身份访问数据的权限 
    mysql>FLUSH PRIVILEGES;

    解决Mysql无法远程连接的问题 
    1、Mysql的端口是否正确
    通过netstat -ntlp 查看端口占用情况,一般情况下端口是3306。在用工具连接MySQl是要用到端口。例如My AdminMy Query BrowserMySQl Front等。
    2、检查用户权限是否正确
    mysql库的user表里有两条记录:host分别为localhost和%(为了安全,%可以换成你需要外部连接的IP)。
    3、查看/etc/mysql/my.cnf中,skip-networking 是否已被注掉
    需要注掉
    报错:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (111)
    sudo gedit /etc/mysql/my.cnf 
    #skip-external-locking
    #bind-address        = 127.0.0.1
    skip-name-resolve
    4、查看iptables是否停掉,没关的情况下,无法连接
    通过:service iptables stop临时关闭。
    报错:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.51.112' (113)

  • 相关阅读:
    大数加法、乘法实现的简单版本
    hdu 4027 Can you answer these queries?
    zoj 1610 Count the Colors
    2018 徐州赛区网赛 G. Trace
    1495 中国好区间 尺取法
    LA 3938 动态最大连续区间 线段树
    51nod 1275 连续子段的差异
    caioj 1172 poj 2823 单调队列过渡题
    数据结构和算法题
    一个通用分页类
  • 原文地址:https://www.cnblogs.com/yunsicai/p/3651244.html
Copyright © 2011-2022 走看看