• 丸子-热门标签-华商生活 2019-12-04
  • 尼勒克县88支“访惠聚”驻村工作队持续发力惠民生 2019-12-04
  • 一幅好的古画会“讲故事” 正如《汉宫秋图》 2019-12-03
  • 安徽秸秆综合利用产业博览会淮南签约10个项目 2019-12-03
  • 陈扬勇谈“党的领导是中国特色社会主义最本质的特征” 2019-12-02
  • “人工智能热”背后,中国也有冷思考 2019-11-29
  • 如何能够成功的撩到李白? 2019-11-29
  • 日照:前5个月日照税收比重居山东省第二位 2019-11-20
  • 苗山脱贫影像志——父母在 不远行 2019-11-10
  • 河北省大气环境问题曝光台 2019-11-10
  • 广州市第十五届人大常委会第十一次会议第二次全体会议 2019-10-29
  • 吉林省首届艺术节拉开帷幕 2019-10-29
  • 国贸集团机关支部全体党员参观2018世界制造业大会和徽商大会 2019-10-16
  • 马上背!十九大报告中的四个“新” 2019-10-04
  • 三日内8省区调整省级政府副职 4省常务副省长变动 2019-10-04
  • 一肖一尾中特平官网: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-12-04
  • 尼勒克县88支“访惠聚”驻村工作队持续发力惠民生 2019-12-04
  • 一幅好的古画会“讲故事” 正如《汉宫秋图》 2019-12-03
  • 安徽秸秆综合利用产业博览会淮南签约10个项目 2019-12-03
  • 陈扬勇谈“党的领导是中国特色社会主义最本质的特征” 2019-12-02
  • “人工智能热”背后,中国也有冷思考 2019-11-29
  • 如何能够成功的撩到李白? 2019-11-29
  • 日照:前5个月日照税收比重居山东省第二位 2019-11-20
  • 苗山脱贫影像志——父母在 不远行 2019-11-10
  • 河北省大气环境问题曝光台 2019-11-10
  • 广州市第十五届人大常委会第十一次会议第二次全体会议 2019-10-29
  • 吉林省首届艺术节拉开帷幕 2019-10-29
  • 国贸集团机关支部全体党员参观2018世界制造业大会和徽商大会 2019-10-16
  • 马上背!十九大报告中的四个“新” 2019-10-04
  • 三日内8省区调整省级政府副职 4省常务副省长变动 2019-10-04
  • 养鬼游戏赚钱 ·河北十一选五走势图 斯诺克在线直播 新快3和值稳赚技巧 棋牌游戏信誉排行榜 2018平特一肖最牛公式 天津时时彩在哪买 qq麻将16番胡牌技巧 今日头条看新闻就可以赚钱 广西快乐10分开奖直播