MySQL数据库主从同步
来源:互联网 发布:最大淘宝小号交易平台 编辑:程序博客网 时间:2024/05/19 12:16
一. 环境搭建
主master:192.168.76.133
从slave: 192.168.76.134
建立测试用数据库及数据表
mysql> create table employees(-> employee_id INT NOT NULL AUTO_INCREMENT,-> name char(20) NOT NULL, -> e_mail varchar(50),-> PRIMARY KEY(employee_id));mysql> desc employees;+-------------+-------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+-------------+-------------+------+-----+---------+----------------+| employee_id | int(11) | NO | PRI | NULL | auto_increment || name | char(20) | NO | | NULL | || e_mail | varchar(50) | YES | | NULL | |+-------------+-------------+------+-----+---------+----------------+
插入数据
mysql> insert into employees values -> (1,'TOM','tom@example.com'), -> (2,'Jerry','jerry@example.com');mysql> select * from employees;+-------------+-------+-------------------+| employee_id | name | e_mail |+-------------+-------+-------------------+| 1 | TOM | tom@example.com || 2 | Jerry | jerry@example.com |+-------------+-------+-------------------+
二. 主库服务器配置
1. 设置服务器编号,开启二进制日志
编辑/etc/my.cnf文件
[mysqld]server-id = 1 #设置服务器编号log-bin = /usr/local/mysql/data/mysql-bin/binlog#启用二进制日志 设定路径名 此目录mysql有权写入. #该路径指定了存放二进制日志的目录为mysql-bin 日志文件名前缀为binlog-------可选------------------------------#binlog-do-db = 数据库名 指定要同步的数据库#binlog-ignore-db=数据库名 指定不同的数据库
重启mysqld服务使配置生效
service mysqld restart
查看是否生效
cd /usr/local/mysql/data/mysql-bin/[root@wzz mysql-bin]# lltotal 8-rw-rw----. 1 mysql mysql 106 Feb 16 12:23 binlog.000001-rw-rw----. 1 mysql mysql 46 Feb 16 12:23 binlog.index
2. 创建从库复制账号
mysql> grant replication slave on *.* to 'rep'@'192.168.76.134' identified by 'slave';Query OK, 0 rows affected (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.00 sec)
3. 只读锁定拒绝写操作
mysql> flush tables with read lock;
4.获取当前日志文件和记录点
mysql> show master status;+---------------+----------+--------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+---------------+----------+--------------+------------------+| binlog.000001 | 334 | | |+---------------+----------+--------------+------------------+
5. 新开XShell窗口,dump数据库
dump数据
mysqldump -uroot -poldboy -A -B --events --master-data=2 >/opt/rep.sql
备份拷贝至从库服务器
scp /opt/rep.sql root@192.168.76.134:/home/wzz/ #拷贝至从库
主库解锁
mysql> unlock tables;Query OK, 0 rows affected (0.00 sec)
备份灌到从库
mysql -uroot -poldboy < /home/wzz/rep.sql # 在从库执行此操作
三. 从库服务器配置
1. 设置从库ID
主从库ID必须唯一 修改my.cnf 后 重启mysql生效
server-id = 2#log-bin=mysql-bin #从库不级联,可以不开启log-bin
重启mysql使配置生效
2. CHANGE MASTER TO设置连接信息
通过CHANGE MASTER TO
指定从库连接主库时所必须的信息
mysql> CHANGE MASTER TO MASTER_HOST='192.168.76.133', MASTER_PORT=3306, # 注意数字不能有引号MASTER_USER='rep', MASTER_PASSWORD='slave', MASTER_LOG_FILE='binlog.000001', MASTER_LOG_POS=334; # 注意数字不能有引号
这些信息会存放在从库data目录下的master.info里。(我的data目录位于/usr/local/mysql)
[root@wzz ~]# cat /usr/local/mysql/data/master.info 18binlog.000001334192.168.76.133repslave3306600
3. 从库开始同步
开启从库同步
mysql> start slave
检查从库状态
mysql> show slave status\GSlave_IO_State: Waiting for master to send event Master_Host: 192.168.76.133 Master_User: rep Master_Port: 3306 Connect_Retry: 60 Master_Log_File: binlog.000001 Read_Master_Log_Pos: 334 Relay_Log_File: nagios-client03-relay-bin.000002 Relay_Log_Pos: 249 Relay_Master_Log_File: binlog.000001 Slave_IO_Running: Yes #主要看这行 Slave_SQL_Running: Yes #主要看这行 Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno: 0 Last_Error: Skip_Counter: 0 Exec_Master_Log_Pos: 334 Relay_Log_Space: 415 Until_Condition: None Until_Log_File: Until_Log_Pos: 0 Master_SSL_Allowed: No Master_SSL_CA_File: Master_SSL_CA_Path: Master_SSL_Cert: Master_SSL_Cipher: Master_SSL_Key: Seconds_Behind_Master: 0Master_SSL_Verify_Server_Cert: No Last_IO_Errno: 0 Last_IO_Error: Last_SQL_Errno: 0 Last_SQL_Error: Replicate_Ignore_Server_Ids: Master_Server_Id: 1
四. 测试
主库的增删改操作会自动同步到从库上
relay-log.info
master.info
show processlist\G
show master status\G
show slave status\G
0 0
- Mysql 主从数据库同步
- MySQL主从数据库同步
- MYSQL 主从数据库同步
- MYSQL 主从数据库同步
- mysql数据库主从同步
- Mysql 主从数据库同步
- MySQL数据库主从同步
- Mysql数据库主从同步
- MySQL数据库主从同步
- mysql主从数据库同步
- MySQL主从数据库同步
- mysql数据库主从同步
- mysql 主从数据库同步
- mysql数据库主从同步
- mysql数据库主从同步
- MySQL数据库主从同步
- mysql数据库主从同步
- MYSQL主从数据库同步备份
- 纯代码写CollectionViewCell的复用问题
- php计算两个经纬度地点之间的距离
- ORACLE常用的sql语句
- 表达式与函数
- hive学习笔记:FetchTask
- MySQL数据库主从同步
- getApplicationContext()和Activity.this区别
- PHP多进程编程理论+实战
- zabbix Agent端在CentOS6.5上的安装过程
- CPU组合逻辑控制方式
- ddms如何检查是否有内存泄露
- c++模板的特化和偏特化
- 【方便查】git bash命令(仓库外)
- JQuery 鼠标hover不停闪动的问题