zoukankan      html  css  js  c++  java
  • mysql 无法远程访问(授权也没办法,确切的说是因为只绑定了127IP)

    默认状况下,出于安全考虑,mysql数据库屏蔽了远程访问功能。 然而在许多状况下,你需要在家或者从web程序去访问远端数据库服务器,这就相当麻烦了。

    第一步: 激活网络设置
    你需要编辑mysql配置文件my.cnf.

    通常状况,my.cnf放置于在以下目录:
    /etc/mysql/my.cnf (Debian linux)
    /etc/my.cnf (Red Hat Linux/Fedora Linux)
    /var/db/mysql/my.cnf (FreeBSD)

    # vi /etc/my.cnf
    然后用vi编辑my.cnf,修改内容从以下行:

    [mysqld]

    你所需要:
    1. 确保skip-networking被删除或者屏蔽,否则不支持TCP/IP 访问
    2. 增加行bind-address = 65.55.55.2,替代65.55.55.2 为你的服务器地址
    修改后,配置为:
    [mysqld]
    user = mysql
    pid-file = /var/run/mysqld/mysqld.pid
    socket = /var/run/mysqld/mysqld.sock
    port = 3306
    basedir = /usr
    datadir = /var/lib/mysql
    tmpdir = /tmp
    language = /usr/share/mysql/English
    bind-address = 65.55.55.2
    # skip-networking
    ....
    ..

    保存并关闭配置文件
    重启mysql服务器: # /etc/init.d/mysql restart

    第二步, 给远程ip授访问权限
    1. 以root身份登陆mysql # mysql -u root -p
    2. 授权给新数据库
    如果你有一个新的数据库名称为foo。用户bar需要在客户端地址为202.54.10.20上访问。

    在服务器端执行 (授权法):
    mysql> CREATE DATABASE foo;
    mysql> GRANT ALL ON foo.* TO bar@'202.54.10.20' IDENTIFIED BY 'PASSWORD';

    如何给以存在的数据库授权?

    如果用户 webadmin 经常在客户端地址202.54.10.20 访问 webd数据库,那么在服务器端执行的命令应该为(改表法):

    mysql> update db set Host='202.54.10.20' where Db='webdb';
    mysql> update user set Host='202.54.10.20' where user='webadmin';

    第三步: 执行exit命令退出mysql环境,

    第四步 测试
    From remote system type command:
    $ mysql -u webadmin —h 65.55.55.2 —p

    注解;
    -u webadmin: webadmin为mysql的用户名 
    -h IP or 域名: 65.55.55.2 is MySQL server IP address or hostname (FQDN) 
    -p : 密码提示
    你也可以使用telnet去连接远程的3306端口 $ telnet 65.55.55.2 3306

  • 相关阅读:
    Swift 编程语言新手教程
    标准差(standard deviation)和标准错误(standard error)你能解释一下?
    shell文字过滤程序(十一):paste命令
    java 获取系统变量(环境变量和环境变量)
    MD5算法原理
    受托停止事件冒泡
    搜索引擎优化要领:8条辅助技巧(三)
    几种更新(Update语句)查询的方法
    学习盲点
    2014年同年CFA考试中哪些CFA资料没有变化?
  • 原文地址:https://www.cnblogs.com/hanxianlong/p/3463215.html
Copyright © 2011-2022 走看看