MySQL主从复制

时间:2017-03-01 12:46:18   收藏:0   阅读:326

一、简介

 1. 为什么使用主从复制

 2. 主从复制工作原理

    技术分享

二、实战

 1. 规划

    一主两从,各节点除了MySQL配置文件的server-id参数不同,其他操作均一致

    IP规划:主库:172.17.78.21

        从1 :172.17.78.22

        从2 :172.17.78.23

 2. 安装

shell> mkdir /downloads
shell> wget -P /downloads https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
shell> cd /downloads
shell> tar zxf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
shell> useradd -s /sbin/nologin -M -u 700 mysql
shell> chown -R mysql.mysql /downloads/mysql-5.6.35-linux-glibc2.5-x86_64  
shell> ln -s /downloads/mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql  
shell> ln -s /usr/local/mysql/bin/* /usr/local/sbin/

 3. 配置

shell> vim /etc/my.cnf 

[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/usr/local/mysql/data/mysql.sock
pid=/usr/local/mysql/data/mysql.pid
user=mysql
log-bin=mysql-bin
log_slave_updates=1
server-id=7821

[mysqld_safe]
log-error=/usr/local/mysql/data/mysqld.log
pid-file=/usr/local/mysql/data/mysql.pid

  4. 初始化

shell> cd /usr/local/mysql/
shell> ./scripts/mysql_install_db --defaults-file=/etc/my.cnf

报错:
    Installing MySQL system tables..../bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决:
     shell> yum install -y libaio-devel

 5. 启动脚本 & 开机自启动

shell> cd /usr/local/mysql/
shell> cp ./support-files/mysql.server /etc/init.d/mysqld
shell> vim /etc/init.d/mysqld
# 修改以下参数
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

shell> chkconfig --add mysqld
shell> chkconfig mysqld on

 6. 启动数据库

shell> /etc/init.d/mysqld start

 7. 建立主从关系

  主库上操作:

shell> mysql -uroot
mysql> grant replication slave on *.* to repl@172.17.78.22 identified by 123456;
mysql> grant replication slave on *.* to repl@172.17.78.23 identified by 123456;
mysql> flush privileges;
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000004 |      408 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
# File 和 Position 的值后续将会用到

  从库操作:

shell> mysql -uroot
mysql> change master to master_host=172.17.78.21,master_user=repl,master_password=123456,master_log_file=mysql-bin.000004,master_log_pos=408;
mysql> start slave;
mysql> show slave status\G

# 以下参数说明MySQL主从建立正常               
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

 

三、测试

  在主库创建库、表,并插入数据,查看从库是否同步。

 

原文:http://www.cnblogs.com/Little-M/p/6483157.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!