前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql数据库主从复制教程

mysql数据库主从复制教程

作者头像
禹都一只猫olei
发布2018-05-25 11:07:50
2.6K0
发布2018-05-25 11:07:50
举报
文章被收录于专栏:禹都一只猫博客

准备装有mysql的两台服务器 IP分别为:

xxx.xxx.xxx.1 (主) xxx.xxx.xxx.2 (从)

授权

  • 将这两台IP授权,允许其它IP通过账号密码进行访问(添加账号为test,密码为12345
  • 分别登录两台服务器,进入mysql,输入:
  1. mysql> Grant all privileges on *.* to 'test'@'%' identified by '123456' with grant option;
  2. mysql> Flush privileges;

上述代码的意思是创建一个test用户,host=%,允许所有IP通过用户名test进行访问。添加完刷新权限。 此时两台机子的mysql应该是可以相互访问的,如果不可以,导致的原因有很多,最常见的是防火墙没关,或者是安全组没有放通3306端口(从)

主数据库配置

  • 登录主服务器,进入mysql的配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,在[mysqld]下面添加:
  1. server-id=1
  2. log-bin=master-bin
  3. log-bin-index=master-bin.index
  • 重启服务(这个是ubuntu的重启方式之一):
  1. $ /etc/init.d/mysql restart
  • 进入mysql,查看主服务器mysql master状态:
  1. mysql> show master status;
  2. +-------------------+----------+--------------+------------------+
  3. | File              | Position | Binlog_Do_DB | Binlog_Ignore_DB |
  4. +-------------------+----------+--------------+------------------+
  5. | master-bin.000001 |      245 |              |                  |
  6. +-------------------+----------+--------------+------------------+

日志File为master-bin.000001,Position为245(这个得记下来,设置从服务的要用)

从数据库配置

  • 登录从服务器,进入mysql的配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,在[mysqld]下面添加:
  1. server-id=10
  2. log-bin=master-bin
  3. log-bin-index=master-bin.index

server-id可以是其他,但是不能与主服务器上的一样

从数据库连接主服务

  • 在从服务器中,登录数据库,输入:
  1. mysql> change master to
  2.     -> master_host = 'xxx.xxx.xxx.1',
  3.     -> master_user='test',
  4.     -> master_password='12345',
  5.     -> master_log_file='master-bin.000001',
  6.     -> master_log_pos= 245;
  7. Query OK, 0 rows affected, 2 warnings (0.13 sec)

启动slave

  • 启动:
  1. mysql> start slave;
  2. Query OK, 0 rows affected (0.01 sec)
  • 查看状态:
  1. mysql> show slave status\G

显示的内容一定有这个情况才算配置正常:

  1. Slave_IO_Running: Yes
  2. Slave_SQL_Running: Yes

测试

  • 在主数据库上创建一个test_zhucong的数据库,创建一个test
mysql数据库主从复制教程
mysql数据库主从复制教程

可以看到,从数据库也相应的有了这个数据库以及表

注意 做主从复制时,首先确定两台服务器的mysql没任何自定义库(否则只可以配置完后之前的东西没法同步,或者两个库都有完全相同的库应该也是可以同步,图中主数据库有些数据库在从的里面没有,就是因为主从设置之前,创建了) server_id必须配置不一样

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-03-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 授权
  • 主数据库配置
  • 从数据库配置
  • 从数据库连接主服务
  • 启动slave
  • 测试
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档