mysql安装点击此处
MySQL主从介绍
MySQL主从又叫做复制,AB复制。简单讲就是A和B两台机器做主从后,在一个上写数据,另外一台B也会跟着写数据,两者数据实时同步。
MySQL主从是基于binlog的,主上须开启binlog才能进行主从。
指定数据库同步操作:
环境说明:需求是创建主从复制环境,要求主端只同步主库中库的测试到奴隶端
主端IP: 10.10.10.1奴隶端IP: 10.10.10.2
主从复制条件:
1。开启主库binlog功能
2。开启主从库服务器id
3。确保主从配置文所件my . cnf中所做有服务器id不同
4。主库建立同步的账户代表并且授权复制
5。在主库锁表刷新表读锁;并查看主库上binlog文件及位置点
显示主状态\ G;记录下此binlog文件和位置点。
6。在主端新开mysql窗口导出全备,恢复备份数据到从库,
7。登录从库,修改主…. .
自动在从库生成配置文件master.info
打开复制开关开始奴隶;显示奴隶状态\ G
8。解锁,开放用户写入功能
操作过程:
主配库my . cnf中所做置文件件参数:
<代码> vi/etc/my.cnf 服务器id=1111(和从库不同即可) log-bin=mysql-bin(开启binlog) binlog-do-db=数据库名称(记录指定库的binlog,模式不同,记录结果不同。) binlog_format=混合(设置binlog模式) expire_logs_days=7(保留7天的binlog) 代码>
重启主端mysql
<代码> centos 6:/etc/init.d/mysql重启 centos 7: systemctl启动mysql 代码>
从配库my . cnf中所做置文件件参数:
<代码> vim/etc/my.cnf 服务器ID=2222(从库的ID,和主库不冲突即可)代码>
重启奴隶端mysql
<代码> centos 6:/etc/init.d/mysql重启 centos 7: systemctl启动mysql 代码>
一。主人上操作:
主库建立同步的账户代表并且授权复制;在主库锁表刷新表读锁;并查看主库上binlog文件及位置点
<代码>显示主状态\ G;记录下此binlog文件和位置点。 mysql -uroot - p的数据库密码”- e”格兰特复制奴隶*。* rep@ 10.10.10.2”被“rep@back123”;冲洗特权;冲洗与读锁表;显示主状态;“代码>
备份指定数据库数据
<代码>,mysqldump -uroot - p的数据库密码”- b数据库名称——单独的事务活动| gzip祝辞/根/数据库名称_美元(日期+ % F) . sql。广州(输出压缩的sql文件) ,mysqldump -uroot - p的数据库密码”- b数据库名称——单一事务事件祝辞/根/数据库名称_(日期+ % F)美元。sql(输出sql文件)代码>
传输数据到奴隶端从库机器
<代码> scp rp - p ssh服务端口sql文件名称root@从库IP:/根/代码>
二.slave上操作:
登陆从库:
<代码> gzip - d test.sql.gz;/root/test.sql来源; 停止奴隶; 重置的奴隶; 停止奴隶; 改变主 MASTER_HOST='主库地址”, MASTER_PORT=3306, - - - - - -→端口 MASTER_USER='新建数据库用户”, MASTER_PASSWORD='新建用户的密码”, MASTER_LOG_FILE='日志文件名称”, MASTER_LOG_POS=日志的位置值; 开始奴隶;显示奴隶状态\ G; 代码>
三。最后在主人上执行解锁操作:
<代码>解锁表;代码>
到此处配置完成:
在主人上创建测试表测试:
同步单个数据库可以在主服务器或者从服务器上配置:
<代码>主服务器: binlog-do-db=仅同步指定的库 binlog-ignore-db=忽略指定的库 从服务器: replicate_do_db=同步指定的库 replicate_ignore_db=忽略指定的库 replicate_do_table=同步指定的表 replicate_ignore_table=忽略指定的表 replicate_wild_do_table=如aming. %,支持通配符 replicate_wild_ignore_table=代码>
主从过程
主将更改操作记录到binlog中
从将主的binlog事件(SQL语句)同步到本机并记录在relaylog中
从根据relaylog里面的SQL语句按顺序执行
说明:该过程有三个线程,主上有一个日志转储线程,用来和从的i/o线程传递binlog;从上有两个线程,其中i/o线程用来同步主的binlog并生成relaylog,另外一个SQL线程用来把relaylog里面的SQL语句落地。
应用环境
备份重要数据
分担主库数据读取压力