Linux下mysql的远程连接

如果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 Admin\My Query Browser\MySQl Front等。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值