环境
主库ip:192.168.253.128
从库ip:192.168.253.140
系统:CentOS7
MySQL版本:5.6.39
第一步:安装MySQL
这里使用二进制包方式安装,二进制包可以在官网下载 https://dev.mysql.com/downloads/mysql/
在主库和从库上都安装MySQL
tar -xf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql5.6
ln -sv /usr/local/mysql5.6 /usr/local/mysql
PATH=/usr/local/mysql/bin/:$PATH
useradd -M -s /sbin/nologin mysql
chown -R mysql:mysql /usr/local/mysql5.6
初始化数据库
yum install perl-Data-Dumper -y
yum install libaio libaio-devel -y #不安装这个包的话初始化数据库可能会报错缺包
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
第二步:修改主库配置文件
[root@localhost src]# cat /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
symbolic-links=0
user=mysql
innodb_file_per_table=1
server-id=1
log-bin=/usr/local/mysql/data/master-log
[mysqld_safe]
log-error=/usr/local/mysql/data/err.log
pid-file=/usr/local/mysql/data/mysql.pid
!includedir /etc/my.cnf.d
启动主库
mysqld_safe &
进入
mysql
进行一些简单的安全设置
mysql_secure_installation -uroot
进入数据库添加用户,允许从库连接
mysql> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 'repl'@'192.168.253.140' IDENTIFIED BY 'replication';
第三步:修改从库配置文件
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
symbolic-links=0
user=mysql
innodb_file_per_table=1
server-id=2 #这里的server-id一定要跟主库不同
relay-log=/usr/local/mysql/data
[mysqld_safe]
log-error=/usr/local/mysql/data/err.log
pid-file=/usr/local/mysql/data/mysql.pid
!includedir /etc/my.cnf.d
启动
mysqld_safe &
进行一些简单的安全设置
mysql_secure_installation -uroot
第四步:备份主库
mysqldump -uroot -p --flush-logs --quick --single-transaction --master-data=2 --all-databases > ~/alldb.sql
再然后在从库上还原备份的主库
scp [email protected]:/root/alldb.sql ~/ #把备份文件拉到从库机器上
mysql -uroot -p < ~/alldb.sql # 导入备份文件
第五步:在从库配置主从
首先需要看一下逻辑备份的文件,看一下主库binlog日志的位置,从哪开始往下复制
根据位置设置主从
CHANGE MASTER TO
MASTER_HOST='192.168.253.128',
MASTER_USER='repl',
MASTER_PASSWORD='replication',
MASTER_LOG_FILE='master-log.000002',
MASTER_LOG_POS=120;
启动
mysql> START SLAVE;
查看是否成功
mysql> SHOW SLAVE STATUS\G
看到下面这两个就意味着成功了。