本文以我的zabbix数据库为例:
master:1.1.1.1
slave:1.1.1.2
一、master操作:
- mysql -uroot -p123 # 进入master数据库。
- grant replication slave on *.* to 'zhao'@'1.1.1.2' identified by 'zhao'; # 授予同步数据的用户权限
- flush tables with read lock ; # 数据库只读锁定命令,防止导出数据库的时候有数据写入。
- mysqldump -uroot -p zabbix > /root/my.sql # 导出zabbix数据库为my.sql。
- scp /root/my.sql root@1.1.1.2:/root # 拷贝my.sql到slave的root下。
slave操作:
- mysql -uroot -p123 # 进入slave数据库
- create database zabbix; # 按实际情况创建,指定合适的字符编码。
- use zabbix # 进入zabbix数据库。
- source /root/my.sql # 导入my.sql到zabbix数据库。
- mysql -uzabbix -h1.1.1.1 -p # 测试是否能登录master的zabbix数据库,前提是在master上给予远程访问权限。
master:
1. vim /etc/my.cnf # 编辑MySQL配置文件添加如下内容:
server-id=1 #设置服务器id,为1表示主服务器。
log-bin=mysql-bin #启动MySQ二进制日志系统。
binlog-do-db=osyunweidb #需要同步的数据库名,有多个数据库就写多行。
binlog-ignore-db=mysql #不同步mysql系统数据库。
2. service mysqld restart # 重启MySQL数据库。
3. mysql -uroot -p123
4. show master status; # 查看master状态,记住File和Position的值。
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000019 | 7131 | osyunweidb | mysql |
+------------------+----------+--------------+------------------+
slave:
1. vim /etc/my.cnf # 编辑MySQL配置文件添加如下内容:
server-id=2 #设置服务器id,为1表示主服务器。
log_bin=mysql-bin #启动MySQ二进制日志系统。
replicate-do-db=osyunweidb #需要同步的数据库名,有多个数据库写多行。
replicate-ignore-db=mysql #不同步mysql系统数据库
2. service mysqld restart # 重启MySQL数据库。
3. mysql -uroot -p123
4. change master to
>master_host='1.1.1.1',
>master_user='zhao',
>master_password='zhao',
>master_log_file='mysql-bin.000019',
>master_log_pos=7131; # 执行同步语句。
5. start slave; # 开启slave同步进程。
6. show slave statusG # 查看slave同步信息,出现以下内容。
7. 注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上这两个参数的值为Yes,即说明配置成功!
master:
- mysql -uroot -p123
- unlock tables;
- use zabbix
- create table zhao(id int(5) not null primary key,name char(10) not null);
备注:查看server_id命令:show variables like 'server_id';
修改server_id命令:set global server_id=2;