首页 > 代码库 > MySQL 主从复制搭建
MySQL 主从复制搭建
环境:
master ip: 192.168.10.10
salve ip: 192.168.10.20
1)在两台机器上面安装好mysql
2)修改master my.cnf 添加如下几行
server-id = 1
log-bin = /opt/mysql/log/mysql-bin.log
datadir = /opt/mysql/data
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
3)修改slave my.cnf 添加如下行
server-id=2
relay-log-index=salve-relay-bin.index
relay-log=slave-relay-bin
datadir=/opt/mysql/data
4)重启master 和 slave MySQL服务
service mysqld restart
5)在master上创建复制账号
mysql> GRANT REPLICATION SLAVE ON *.* TO salve@192.168.10.20 IDENTIFIED BY ‘mysql‘;
6)查看master 状态
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000004 | 739 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
7)如果需要同步原有的库,还需要做如下操作,否者调到第11步
mysql> FLUSH TABLES WITH READ LOCK;
在主机上执行FLUSH TABLES WITH READ LOCK语句来刷新所有的表并阻断写操作
8) 使用mysqldump命令备份需要同步的数据库
[root@localhost ~]$ mysqldump -u root dbname > /home/root/dbname.sql
9)在salve上恢复数据
先将备份的sql文件复制到salve
[root@localhost ~]$ mysql -u root –e ‘create database dbname;‘
[root@localhost ~]$ mysql -u root dbname < /home/root/dbname.sql
10) salve恢复完成后重新打开master的读写功能
mysql> UNLOCK TABLES;
11)在slave上执行如下命令开始同步数据
mysql> change master to master_host=‘192.168.10.10‘,
master_user=‘slave‘,
master_password=‘mysql‘,
master_log_file=‘mysql-bin.000004‘,
master_log_pos=1790;
mysql> start slave
12) 最后在master上创建表验证
本文出自 “专注于Oracle性能调优” 博客,转载请与作者联系!