mysql主从复制配置过程
16lz
2021-12-16
主库配置
1. 配置mysql
vim /etc/my.cn# 在文件中增加以下内容server-id=1 # 保证server id唯一log-bin = /var/lib/mysql/mysql-bin.logbinlog-do-db = db1 binlog-do-db = db2
2. 添加复制用户
通过phpmyadmin,添加新用户,并授予REPLICATION SLAVE权限。或者通过root用户登录到mysql,赋予权限:
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'password'
3. dump数据
如果能够保证不会产生新数据,就不需要对数据库加锁。如果不能保证,则需要对每一个dump数据的数据库加锁:
use db1;FLUSH TABLES WITH READ LOCK;
mysqldump -uroot -p db1 > db1.sql
4. 查看二进制文件位置
使用root身份登录mysql,查看master状态:
show master status;
+-----------------+-----------+----------------+------------------+| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |+-----------------+-----------+----------------+------------------+| mysql-bin.00002 | 445 | db1,db2 | |+-----------------+-----------+----------------+------------------+1 row in set (0.00 sec)
如果导出数居前对数据库加了读锁,则需要解除:
use db1;UNLOCK TABLES;
从库配置
1. 新建数据库
首先在从库上建立相同名称的数据库。
2. 配置从数据库
vim /etc/my.cnf# 在my.cnf中增加以下内容:server-id = 2 # 保证id唯一relay-log = /var/lib/mysql/mysql-relay-bin.logreplicate-wild-do-table = db1.%replicate-wild-do-table = db2.%
3. 导入数据
将主服务器上dump出来的数据导入从服务器中:
mysql -uroot -p db1 < db1.sql
登录到mysql服务器,配置同步的主服务器信息:
> change master to master_host='xxx.xxx.xx.xx',> master_user='repl',> master_password='password',> master_log_file='mysql-bin.00000x',> master_log_pos=xxxx;
测试
在主库上新增记录或者添加表等操作,几乎都能实时反映到从库上。
更多相关文章
- Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner Proces
- Android(安卓)Chromium WebView html js 开发系列
- Android(安卓)Calendar使用过程中遇到的问题
- CyanogenMod 编译 Google Galaxy Nexus (GSM) 全过程
- Android(安卓)启动过程
- Android(安卓)启动过程(2)
- android 多媒体扫描过程(Android(安卓)Media Scanner Process)
- [置顶] Android加载数据过程中的菊花显示
- Android的启动过程