加入收藏 | 设为首页 | 会员中心 | 我要投稿 百客网 - 百科网 (https://www.baikewang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

远程连接Linux下MySQL服务器

发布时间:2022-10-08 10:47:58 所属栏目:MySql教程 来源:
导读:  本文已在Ahezime上发布: ahezime.com/blog/post/20190013

  1. 工具

  ubuntu 16.04
  mysql-server
  iptables
  ufw
  netstat
  2. 安装

  sudo apt-get install mysql-ser
  本文已在Ahezime上发布: ahezime.com/blog/post/20190013
 
  1. 工具
 
  ubuntu 16.04
  mysql-server
  iptables
  ufw
  netstat
  2. 安装
 
  sudo apt-get install mysql-server 可以修改root用户的密码:
 
  alter user ‘root’@’%’ identified by ‘xyz’;
  其中‘%’表示连接到mysql服务器的所有机器mysql远程,设置后将使用xyz作为登录密码。 登录MySQL服务器:
 
  mysql 远程备份_mysql远程访问权限_mysql远程
 
  3. 配置
 
  要想让远程客户端访问MySQL服务器,一是要确定客户端访问没系统拦截;二是要配置mysql,授权用户访问。其中访问被拦截,客户端提示代码为2003-10060的错误,可以通过配置iptables或开启防火墙并添加mysql访问来解决。对于mysql没授权会提示代码1130的错误,可以通过授权用户解决。
 
  3.1 iptables
 
  未配置iptables是访问发生错误:
 
  mysql远程_mysql 远程备份_mysql远程访问权限
 
  添加iptables访问规则:
 
  服务器接受访问3306的端口,将数据流转移到网卡eth0。 可以查看iptables的配置:
 
  mysql远程_mysql 远程备份_mysql远程访问权限
 
  3.2 ufw
 
  当防火墙打开时,没有开放mysql访问端口时的错误:
 
  mysql远程_mysql 远程备份_mysql远程访问权限
 
  打开ufw:
 
  在打开时,提示是否及继续,继续的话ssh访问会受到影响,选择y。然后添加允许ssh访问。此外,当ufw diable后,将不能访问iptables配置,只有enable时才可以访问:
 
  mysql远程访问权限_mysql远程_mysql 远程备份
 
  sudo ufw allow ssh
  添加ssh后查看状态:
 
  mysql远程访问权限_mysql远程_mysql 远程备份
 
  此时,ufw只允许ssh访问,其他如ftp,mysql,http等访问将被拦截。添加其他访问后的状态:
 
  mysql远程_mysql 远程备份_mysql远程访问权限
 
  可以删除不想开放的服务端口:
 
  3.3 mysql
 
  远程连接MySQL服务器时,如未配置mysql访问权限,那么访问错误:
 
  mysql远程访问权限_mysql远程_mysql 远程备份
 
  授权访问:
 
  mysql 远程备份_mysql远程访问权限_mysql远程
 
  这里给任何机器授权以root用户和密码为root的访问。当然,在实际应用中这样的授权是不安全的,可以限制特定ip来访问mysql服务器,如:
 
  grant all privileges on *.* to ‘root’@’127.0.0.1’ identified by ‘root’ with grant option
  最后,要想让其他任何机器连接MySQL服务器,修改mysql的bind-address配置:
 
  mysql 远程备份_mysql远程访问权限_mysql远程
 
  bind-address = 127.0.0.1 是的网络状态:
 
  bind-address = 127.0.0.1时的远程连接错误:
 
  mysql远程_mysql 远程备份_mysql远程访问权限
 
  bind-address现在绑定的是本机的环回接口127.0.0.1,要想让其他机器访问,那么就要修改ip地址。这里直接注释这条语句,表示任何机器都可以远程连接MySQL服务器。 重启mysql服务,让配置生效:
 
  重启后的网络监听状态:
 
  此时,mysql服务监听任何连接mysql服务器的3306端口。 到现在,所有的配置已经完成。
 
  ================================ Update ======================
 
  ### 改变MySQL TIMEZONE
 
  ```
 
  root@raywallake:/ahezime/log# date
 
  Fri Jan 10 09:54:00 UTC 2020
 
  root@raywallake:/ahezime/log# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
 
  root@raywallake:/ahezime/log# date
 
  Fri Jan 10 17:54:25 CST 2020
 
  > service mysql restart
 
  mysql> select now();
 
  +---------------------+
 
  | now()|
 
  +---------------------+
 

(编辑:百客网 - 百科网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!