mysql主从分离

Posted zhyemmmm

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql主从分离相关的知识,希望对你有一定的参考价值。

1、工具:

两台机器

master:192.168.0.1

slave:192.168.0.2

2、master的配置

找到mysql的配置文件,一般centos的是/etc/my.cnf,ubuntu的是/etc/mysql/mysql.conf.d/mysqld.cnf

跳到到[mysqld]下配置

bind-address = 192.168.0.1 #可注释
server-id = 1 #架构中唯一节点id
log_bin=mysql-bin
log_bin = /var/log/mysql/mysql-bin.log #开启binlog
binlog-ignore-db=mysql  #不需要复制的数据库
binlog-do-db=ufind_db   #要复制的数据库

重启master

service mysql restart

进入mysql命令行,加用户

CREATE USER \'zhylioooo\'@\'%\' IDENTIFIED BY \'123456\';
GRANT REPLICATION SLAVE ON *.* TO \'zhylioooo\'@\'%\';

导出master数据库

给数据库加锁使其只可读

FLUSH TABLES WITH READ LOCK;

到处数据库文件

mysqldump -u root -p --all-databases --master-data > dbdump.sql

给数据库解锁

UNLOCK TABLES;

查看master的二进制记录文件及文件当前记录的位置

SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File    | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |  1050 |    |     |     |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
 
3、slave配置
slave配置重点
server-id = 2 #架构中唯一节点id,比master大
log_bin=mysql-bin
log_bin = /var/log/mysql/mysql-bin.log #开启binlog

重启mysql

导入master导出的数据库文件,使数据库一致

 mysql -u root -p < dbdump.sql

进入mysql使slave与master连接

STOP SLAVE;

CHANGE MASTER TO
 -> MASTER_HOST=\'192.168.0.1\',
 -> MASTER_USER=\'zhylioooo\',
 -> MASTER_PASSWORD=\'123456\',
 -> MASTER_LOG_FILE=\'mysql-bin.000001\',
 -> MASTER_LOG_POS=1050;

START SLAVE;

4、集群策略:https://www.cnblogs.com/KTblog/p/5122825.html

 

 

以上是关于mysql主从分离的主要内容,如果未能解决你的问题,请参考以下文章

MySQL主从复制及读写分离实际部署与验证

MySQL主从复制及读写分离实际部署与验证

基于MySql主从分离的代码层实现

MySQL主从复制与读写分离配置及实操

MySQL主从复制以及读写分离(❤❤❤❤含理论和实验❤❤❤❤大家中秋快乐!㊗)

MySQL主从复制以及读写分离(❤❤❤❤含理论和实验❤❤❤❤大家中秋快乐!㊗)