说明:有不少同学不能一次性把实验做成功,这是因为还不熟悉,建议至少做3遍


17.1 MySQL主从介绍

blob.png

blob.png


17.2 准备工作


准备两台电脑,都安装mysql,并启动,操作相同,如下;

#ps aux | grep mysql

下载mysql,#wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz //下载mysql

#cd /usr/local/src/

#ls

解压mysql,#tar zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz

#mv mysql-5.6.36 /usr/local/mysql

#cd /usr/local/mysql/

事先创建一个mysql用户,然后下一步

#./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

#echo $? //如果为0,表示安装成功;或者安装过程中,提示两个OK;

#vim /etc/my.cnf //修改以下内容

datadir=/data/mysql

socket=/tmp/mysql.sock

#cp support-files/mysql.server /etc/init.d/mysqld

#vim /etc/init.d/mysqld //修改以下内容

basedir=/usr/local/mysql

datadir=/data/mysql

#/etc/init.d/mysqld start 

//若启动报错,查错误日志如下

#cd /data/mysql

#ls

#tail aminglinux-01.err

#less !$

#ls -l /data/mysql

#chown -R mysql:mysql

#/etc/init.d/mysqld start

#!ps

设置开机启动#chkconfig mysqld on


17.3 配置主


blob.png

#vim /etc/my.cnf

[mysqld]里增加下面两行

server-id=130

log_bin=aminglinux1

#/etc/init.d/mysqld restart

#ls -lt //可以看到多个以aminglinux1开头的文件,非常重要;

#mysqldump -uroot -paminglinux blog > /tmp/blog.sql

#du -sh /tmp/blog.sql

#mysql -uroot -e "create database aming"

#mysql -uroot aming < /tmp/blog.sql

#mysql -uroot -paminglinux

mysql> grant replication slave on *.* to 'repl'@slave_ip identified by 'password'

mysql> flush tables with read lock;

mysql> show master status; //记住file,position,

mysql> quit

备份,#mysqldump -uroot -paminglinux mysql2 > /tmp/my2.sql

备份,#mysqldump -uroot -paminglinux zrlog > /tmp/zrlog.sql


17.4 配置从


blob.png

#vim /etc/my.cnf //增加server-id=131,131为IP最后数字,也可以随便定义;

#/etc/init.d/mysqld restart

#ls /data/mysql

#scp 192.168.133.130:/tmp/*.sql /tmp/

#alias 'mysql=/usr/local/mysql/bin/mysql'

#alias 'mysqldump=/usr/local/mysql/bin/mysqldump'

#mysql -uroot

mysql>  create database aming;

mysql>  create database zrlog;

mysql>  create database blog;

mysql>  create database mysql2;

mysql>  quit

#mysql -uroot blog < /tmp/blog.sql

#mysql -uroot zrlog< /tmp/zrlog.sql

#mysql -uroot aming </tmp/blog.sql

#mysql -uroot mysql2 < /tmp/my2.sql

#mysql -uroot

mysql>  stop slave;

mysql>  change master to master_host='192.168.133.130',master_user='repl',master_password='aminglinux111',master_log_file='aminglinux1.000001',master_log_pos=474566;

mysql>  start slave;

mysql>  show slave status\G


17.5 测试主从同步


blob.png

主上操作如下:

#mysql -uroot aming

mysql>select count(*) from db;

mysql>truncate table db;

从上操作如下:

#mysql -uroot aming

mysql>select count(*) from db;

blob.png

有的同学,遇到主从不能正常同步,提示uuid相同的错误。这是因为克隆机器导致。

https://www.2cto.com/database/201412/364479.html