• 让全民“动”起来 网友:健身配套设施不能少 2019-08-11
  • 海峡两岸青年交流:一灯引千灯 灯灯相辉映 2019-08-09
  • 陕西守艺人丨被《舌尖上的中国》忽略的洛南空心挂面 2019-07-05
  • 湖州德清重点项目“磁吸”效应初显 2019-06-26
  • 《热血狂篮》邢菲接手涂冰成新领队 佟梦实“被贬”成普通朋友 2019-06-12
  • 海淀区西三旗地区2000余人共享首届冰雪欢乐节 2019-06-11
  • 央行:有效防控互联网金融领域风险 2019-06-09
  • 【读史忆人·典故】邓小平为周谷城题写校名 2019-06-08
  • 李军的专栏作者中国国家地理网 2019-06-08
  • 保护英烈权益要用好公益诉讼 2019-06-07
  • 比利时并不轻松地击败巴拿马 2019-06-07
  • 【学习时刻】北大马院副院长宇文利:大学生要在思想政治教育课中努力形成正确认识 2019-06-06
  • 真的很美!越冬候鸟迎来迁徙高峰 2019-06-05
  • 这些咖啡馆里,能喝到好奇心和想象力 2019-06-04
  • 博通裁员1100人以削减成本 涉及公司所有业务部门 2019-06-03
  • 精准一尾中特公式:Linux上mysql开启远程连接方法_解决MySQL不允许远程访问的方法

    时间:2016-03-26 12:06来源:未知 作者:Linux先生 举报 点击:
    新安装的MySQL是默认不开户远程访问权限的,也就不能外部连接MySQL。这样对想远程调用MySQL的数据很不方便。下面我们来看下如何设置允许远程连接MySQL数据库。
    还没有安装Mysql的可以参考怎么在阿里云Linux主机上安装mysql
    一般来说mysql安装时都是关闭远程连接的,但是如果一台电脑需要多个网站连接,而这些网站又不是自己服务器上,那么就需要把mysql数据库的远程开启,开启mysql远程登录的用户都是存储在mysql数据库中的user表中。默认情况下,Mysql为了安全起见是不支持远程访问和连接的。不过有的时候,工作需要你要从家里或者网页来访问Mysql,本文就介绍下怎么在Linux系统上给Mysql创建一个远程连接的账户,支持远程访问.


    任务: MySQL服务远程访问权限

    免费一尾中特 www.nifws.tw 你需要执行下面的这些命令,让Mysql运行支持远程连接.

    步骤# 1: 登录到SSH 

    首先通过ssh登录到Mysql数据库服务器去,然后使用root进入Mysql:

    ssh user@server1.cyberciti.biz
    ### login as the root using su or sudo ##
    su
    #sudo -s

    或者直接使用ssh登录

    ssh root@server1.cyberciti.biz

    步骤# 2: E编辑my.cnf文件

    连接成功之后,我们就来编辑Mysql的配置文件:my.cnf 

    • 如果你的系统是Debian Linux 那文件位置是:/etc/mysql/my.cnf .
    • 如果你的系统是 Red Hat Linux/Fedora/Centos Linux 那文件位置是: /etc/my..
    • 如果你的系统是 FreeBSD 那文件位置是: /var/db/mysql/my.cnf .

    然后我们就编辑/etc/my.cnf, 执行:
    # vi /etc/my.cnf

    步骤 # 3: 打开编辑后,我们找到这行(vi里面,先按下esc,然后输入/[mysqld],再enter,即可查找,按n可以看下一个):

    [mysqld] 

    然后把跳过的IP设置好,让帮到的IP为你自己要进入连接的IP,

    bind-address=YOUR-SERVER-IP

    比如,你的MySQL 服务器IP是 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
    ....
    ..
    ....

    这里的,

    • bind-address: 绑定的IP
    • skip-networking : 不再监听TCP/IP 连接. 所有的Mysql交互都要通过Unix sockets. 如果你只想本地请求的话强烈建议开启,因为我们现在是开启远程连接,所以在这里我们就给注释掉,在前面加上#号就可以了.

    步骤# 4 保存文件重启Mysql服务

    如果是Debian / Ubuntu Linux系统,输入下面的命令重启Mysql服务
    # /etc/init.d/mysql restart
    如果是RHEL / CentOS / Fedora / Scientific Linux系统,输入下面的命令重启Mysql服务
    # /etc/init.d/mysqld restart
    如果是FreeBSD系统,输入下面的命令重启Mysql服务
    # /usr/local/etc/rc.d/mysql-server stop
    # /usr/local/etc/rc.d/mysql-server start

    或者
    # /usr/local/etc/rc.d/mysql-server restart

    步骤# 5 给远程IP授权

    连接到Mysql
    $ mysql -u root -p mysql

    那我们就授权给新的数据库

    我们想远程IP为202.54.10.20,通过Mysql用户bar访问数据库foo,那我们需要在Mysql(mysql> prompt)下输入:

    mysql> CREATE DATABASE foo;
    mysql> GRANT ALL ON foo.* TO [email protected]'202.54.10.20' IDENTIFIED BY 'PASSWORD';

    那怎么给已存在的库授权呢?

    加入你需要从远程IP202.54.10.20通过Mysql用户webadmin访问webdb库,那命令就是这样的了

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

    步骤# 6: 退出MySQL

    退出Mysql,使用:mysql> exit

    步骤# 7: 打开防火墙3306端口

    我们需要打开iptables或者BSD的pf防火墙3306 TCP端口

    通用Mysql3306端口的iptables(vi /etc/sysconfig/iptables)防火墙规则

    /sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

    或者你只允许web那台服务器(IP为10.5.1.3)可以访问:

    /sbin/iptables -A INPUT -i eth0 -s 10.5.1.3 -p tcp --destination-port 3306 -j ACCEPT

    或者只允许局域网192.168.1.0/24段访问

    /sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT

     最后重启防火墙使配置生效(RHEL / CentOS):
    # service iptables save
    #或者是
    # /etc/init.d/iptables restart

    下面是一个简单的FreeBSD / OpenBSD / NetBSD pf 防火墙规则(vi /etc/pf.conf)

    通用BSD系统打开3306端口:

    pass in on $ext_if proto tcp from any to any port 3306

    或者只允许web服务器(IP为10.5.1.3)等访问

    pass in on $ext_if proto tcp from 10.5.1.3 to any port 3306  flags S/SA synproxy state

    步骤# 8: 测试远程连接

    从你自己的机器上测试连接:
    $ mysql -u webadmin –h 65.55.55.2 –p
    参数说明,

    • -u webadmin: webadmin 是Mysql的用户名
    • -h IP或者主机名: 65.55.55.2 是MySQL的IP或正式主机域名
    • -p :弹出输入密码窗口

    还可以使用telnet或nc命令来测试3306连接:
    $ echo X | telnet -e X 65.55.55.2 3306
    或NC
    $ nc -z -w1 65.55.55.2 3306
    输出结果:

    Connection to 65.55.55.2 3306 port [tcp/mysql] succeeded!
    推荐内容
  • 免费一尾中特
  • 让全民“动”起来 网友:健身配套设施不能少 2019-08-11
  • 海峡两岸青年交流:一灯引千灯 灯灯相辉映 2019-08-09
  • 陕西守艺人丨被《舌尖上的中国》忽略的洛南空心挂面 2019-07-05
  • 湖州德清重点项目“磁吸”效应初显 2019-06-26
  • 《热血狂篮》邢菲接手涂冰成新领队 佟梦实“被贬”成普通朋友 2019-06-12
  • 海淀区西三旗地区2000余人共享首届冰雪欢乐节 2019-06-11
  • 央行:有效防控互联网金融领域风险 2019-06-09
  • 【读史忆人·典故】邓小平为周谷城题写校名 2019-06-08
  • 李军的专栏作者中国国家地理网 2019-06-08
  • 保护英烈权益要用好公益诉讼 2019-06-07
  • 比利时并不轻松地击败巴拿马 2019-06-07
  • 【学习时刻】北大马院副院长宇文利:大学生要在思想政治教育课中努力形成正确认识 2019-06-06
  • 真的很美!越冬候鸟迎来迁徙高峰 2019-06-05
  • 这些咖啡馆里,能喝到好奇心和想象力 2019-06-04
  • 博通裁员1100人以削减成本 涉及公司所有业务部门 2019-06-03
  • 大发快三全天计划网 幸运时时彩老式走势图 今天河南中原风采22选5开奖结果 时时计划群坑 老时时20110601001 极速3分彩 澳客怎么联系客服 福彩欢乐生肖规则 3d开机号和试机号今天 福建体彩最快开奖结果