mysql主从同步2016-09-14MySQL编译安装shell> groupadd mysqlshell> useradd -g mysql mysqlshell> gunzip < mysql-VERSION.tar.gz | tar -xvf -shell> cd mysql-VERSIONshell> ./configure --prefix=/usr/local/mysqlshell> makeshell> make installshell> cp support-files/my-medium.cnf /etc/my.cnfshell> cd /usr/local/mysqlshell> bin/mysql_install_db --user=mysqlshell> chown -R root .shell> chown -R mysql varshell> chgrp -R mysql .shell> bin/mysqld_safe --user=mysql &MySQL 主从同步先清楚两点 1、mysql配置文件my.cnf的位置2、如何启动、停止mysql,找好启动文件假设有两台机器,已经安装好了mysql(尽量同版本,且两台机器同一网络,可以ping通)主机A: 192.168.1.100从机B:192.168.1.101 可以有多台从机1、先登录主机 Amysql>GRANT REPLICATION SLAVE ON .TO backup@"%" IDENTIFIED BY "123456";赋予从机权限,有多台丛机,就执行多次2、 打开主机A的my.cnf,输入server-id = 1 #主机标示,整数log_bin = /var/log/mysql/mysql-bin.log #确保此文件可写read-only =0 #主机,读写都可以binlog-do-db =test #需要备份数据,多个写多行binlog-ignore-db=mysql #不需要备份的数据库,多个写多行3、打开从机B的my.cnf,输入server-id = 2log_bin = /var/log/mysql/mysql-bin.logmaster-host =192.168.1.100master-user =backupmaster-pass =123456master-port =3306master-connect-retry=60 #如果从服务器发现主服务器断掉,重新连接的时间差(秒)replicate-do-db =test #只复制某个库replicate-ignore-db=mysql #不复制某个库4.重启slave mysqlstop slave;CHANGE MASTER TO MASTER_HOST=192.168.100.13, MASTER_USER=slave, MASTER_PASSWORD=slave_password, MASTER_LOG_FILE=mysql-bin.000001, MASTER_LOG_POS=890;start slave;5.在master mysql上创建数据库测试,从库是否同步.或者show slave statusG 查看Slave_IO_Running: YesSlave_SQL_Running: Yes两个yes为同步.可以在主机A中,做一些INSERT, UPDATE, DELETE 操作,看看主机B中,是否已经被修改补充:在从服务器上使用show slave statusGSlave_IO_Running,为No,则说明IO_THREAD没有启动,请执行start slave io_threadSlave_SQL_Running为No则复制出错,查看Last_error字段排除错误后执行start slave sql_thread查看Slave_IO_State字段空 //复制没有启动Connecting to master//没有连接上masterWaiting for master to send event//已经连上主服务器上的相关命令:show master statusshow slave hostsshow logsshow binlog eventspurge logs to log_namepurge logs before datereset master(老版本flush master)set sql_log_bin=从服务器上的相关命令:slave startslave stopSLAVE STOP IO_THREAD //此线程把master段的日志写到本地SLAVE start IO_THREADSLAVE STOP SQL_THREAD //此线程把写到本地的日志应用于数据库SLAVE start SQL_THREADreset slaveSET GLOBAL SQL_SLAVE_SKIP_COUNTERload data from mastershow slave status(SUPER,REPLICATION CLIENT)CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,MASTER_USER=, MASTER_PASSWORD= //动态改变master信息PURGE MASTER [before date] 删除master端已同步过的日志URL:http://www.bianceng.cn/database/MySQL/201609/50443.htm