商会资讯

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博连接

一步搞定

搜索
热搜: 活动 交友 discuz
查看: 7204|回复: 0
打印 上一主题 下一主题

打开MySQL数据库远程访问的权限,连接时提示网关不允许连接

[复制链接]

109

主题

1

好友

3774

积分

管理员

Rank: 9Rank: 9Rank: 9

  • ta_mind
    mb_qb7
    2013-3-19 01:56
  • classn_01: 366 classn_02

    [LV.9]以坛为家II

    跳转到指定楼层
    楼主
    发表于 2018-1-8 15:16:03 |只看该作者 |倒序浏览
    在我们使用mysql数据库时,有时我们的程序与数据库不在同一机器上,这时我们需要远程访问数据库。缺省状态下,mysql的用户没有远程访问的权限。下面介绍两种方法,解决这一问题。
    1、改表法

    可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"

    mysql -u root -p

    mysql>use mysql;

    mysql>update user set host = '%' where user = 'root';

    mysql>select host, user from user;

    2、授权法

    在安装mysql的机器上运行:

    1、d:\mysql\bin\>mysql -h localhost -u root

    //这样应该可以进入MySQL服务器

    2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION

    //赋予任何主机访问数据的权限

    例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。

    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH 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;

    3、mysql>FLUSH PRIVILEGES

    //修改生效

    4、mysql>EXIT

    退出MySQL服务器,这样就可以在其它任何的主机上以root身份登录

    同理,hyper-v装了centos6.8, 通过NAT访问外网, 开了远程端口3306, 也给了root远程权限, 用navicat连接时提示网关不允许连接,

    譬如:网关是192,.168.168.1,  就给它个远程连接权限 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.168.1' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

    搞掂!




    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    分享分享0 收藏收藏0 转发到微博
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    回顶部