zoukankan      html  css  js  c++  java
  • Linux下mysql的远程连接(转)

    转载:http://www.cnblogs.com/fnlingnzb-learner/p/5830661.html

    如果Mysql是按上篇的方法进行安装和设置的话,那进行远程连接就会稍微简单一点。我就结合百度上的一些文章进行剖析。

    本地计算机ip:192.168.1.100
    远程计算机ip:192.168.1.244

      

    1. 远程连接上Linux系统,确保Linux系统已经安装上了MySQL数据库。登陆数据库。mysql -uroot -p(密码)。

       
       
    2.  创建用户用来远程连接

      GRANT ALL PRIVILEGES ON *.* TO 'itoffice'@'%' IDENTIFIED BY 'itoffice' WITH GRANT OPTION;

      (第一个itoffice表示用户名,%表示所有的电脑都可以连接,也可以设置某个ip地址运行连接,第二个itoffice表示密码)。

       
       
    3.  执行 flush privileges;命令立即生效
       
       
    4.  查询数据库的用户(看到如下内容表示创建新用户成功了)

       SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

       
       
    5. 使用exit命令退出MySQL

      然后打开vim  /etc/mysql/my.cnf

      将bind-address    = 127.0.0.1

       设置成bind-address    = 0.0.0.0(设备地址)

      重新启动(命令如下):

      /etc/init.d/mysql stop

      /etc/init.d/mysql start

       
       
    6. 查看端口号

       show global variables like 'port';  

       
       
    7. 设置navicat连接。
       
       
    8. 点击连接测试看到如下内容表示成功。

    注意问题:

    1)我经常在输入mysql -u root -p时,显示cannot connect to mysql server...这种错误,后来发现是没有打开mysql。所以在以上操作之前记得看看Mysql有没有打开:

    1 service mysql status --查看有没有打开服务
    2 service mysql start --打开服务
    3 service mysql stop --停止服务
    4 service mysql restart --重启服务 

    2)在进行上述连接后,我用navicat远程连接mysql,发现还是不可以,鼓捣了很久,才发现是因为防火墙的问题,防火墙把3306端口屏蔽了。所以要设置防火墙:

    设置防火墙允许3306端口
    vi /etc/sysconfig/IPtables
    添加-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
    (注意添加在-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited之前,否则可能导致规则不生效)
    重启防火墙service iptables restart

    解决Mysql无法远程连接的问题

    1、Mysql的端口是否正确
    通过netstat -ntlp查看端口占用情况,一般情况下端口是3306。在用工具连接MySQl是要用到端口。例如My AdminMy Query BrowserMySQl Front等。

    2、检查用户权限是否正确
    mysql库的user表里有两条记录:host分别为localhost和%(为了安全,%可以换成你需要外部连接的IP)。

  • 相关阅读:
    电子证书 DER & PEM & CRT & CER
    更新显卡驱动
    隐马尔可夫模型拼音汉字输入法
    隐马尔可夫模型:HMM
    numpy 随机产生数字
    python(62):保留两位小数
    训练的时候 nvidia:自动刷新
    python(61):str 和 bytes 转换
    tensorflow 笔记12:函数区别:placeholder,variable,get_variable,参数共享
    tensorflow 笔记11:tf.nn.dropout() 的使用
  • 原文地址:https://www.cnblogs.com/jikexianfeng/p/6593467.html
Copyright © 2011-2022 走看看