|
mysql主从配置mysql主从(MYSQL Replication),主要用于mysql的时时备份或者读写的分离。
原理:
每个从仅可以设置一个主。
主在执行sql之后,记录二进制log文件(bin-log)
从连接主,并获取主的bin-log,存于本地的relay-log,并从上次记住的位置起执行sql,一旦遇到错误则停止同步。
实验:两台mysql机器
步骤:主上操作:vim /etc/my.cnf
修改或者添加:
log-bin=aming //名字随便取
server-id = 1 //主从数值不一样即可
两个可选参数(2选1):
binlog-do-db=db1,db2 //需要同步的库
binlog-ignore-db=db1,db2 //忽略不同步的库
/etc/init.d/mysqld start
mysql -uroot –predhat //登陆数据库
mysql> grant replication slave on *.* to'repl'@'192.168.134.141' identified by '123123'; //授权给从一个同步数据的用户
mysql> flush tables with read lock; //给予只读权限
mysql> show master status; //查看主的状态,记住前两列数值
mysql> create database db1;
mysql> exit;
mysqldump -uroot -predhat mysql >/root/123.sql //为了测试,备份数据库mysql
mysql -uroot -predhat db1 </root/123.sql
/etc/init.d/mysqld restart
yum install openssh-clients //scp,用于远程同步
//scp -r /root/123.sql root@192.168.134.141:/root //这步省略
从上操作:vim /etc/my.cnf
添加或修改:
server-id = 111 //和主上id不同即可
可选参数:replicate-do-db=db1,db2 和replicate-ignore-db=db1,db2 #意义同主的那两
个可选参数
/etc/init.d/mysqld start
/usr/local/mysql/bin/mysql -uroot -e"create database db2";
yum install openssh-clients //scp,用于远程同步
scp -r root@192.168.134.137:/root/123.sql/root/ //远程拷贝123.sql
/usr/local/mysql/bin/mysql -uroot db2 </root/123.sql
/usr/local/mysql/bin/mysql –uroot //登陆数据库
mysql> slave stop; //先停止slave,避免出错!
mysql> change master tomaster_host='192.168.134.137',master_port=3306,master_user='repl',master_password='123123',master_log_file='aming.000002',master_log_pos=262; //连接同步主
mysql> slave start; //启动slave
mysql> show slave status\G; //查看从的状态
看看是否有:
Slave_IO_Running: Yes //从主服务器拉取信息是否正常
Slave_SQL_Running: Yes //读取本机的hostname-relay-bin.000001然后执行里面的文件是否正常
有两个Yes,才算正常。
Mysql主从配置成功在主上测试,添加,修改,更新,删除数据库都会同步到从(slave)
|
|