mysql主从配置
mysql的主从配置
1、主从简介
在现代企业中,数据库显得尤为重要,而储存数据的数据库选择的五花八门,但任何数据库都存在着一种隐患。
想几个问题:
- 用一台服务器存放数据,若此数据库服务器出问题导致数据库丢失怎么办?
- 业务量大了,数据多了,访问人多了,一台数据库无法保证服务器质量怎么办?
1.1、主从作用
- 实时灾备,用于故障切换
- 读写分离,提供查询服务
- 备份,避免影响业务
1.2、主从形式
- 一主多从
- 主主复制
- 一主多从
- 多主一从
- 联级复制
2、主从复制原理
主从复制步骤:
- 主库将所有的写操作记录到binlog日志中并且生成一个log dumo线程,将binlog日志传给从数据库的I/O线程
- 从数据库生成两个线程,一个SQL线程,一个I/O线程
- I/O线程去请求主库的binlog,并且将得到的binlog日志写道reay log(中继日志)文件中
- SQL线程会读取relay log文件日志中,并且解析具体操作,来实现组从一致。
3、主从复制配置
配置步骤:
- 确保主从数据库数据一样
- 在主数据库里面创建一个同步账号授权给从库
- 配置主数据库(配置文件)
- 配置从数据库(配置文件)
准备两台数据库:
数据库角色 | IP | 应用系统版本 | 有无数据 |
---|---|---|---|
主数据库 | 192.168.7.10 | radhat7 | 无 |
从数据库 | 192.168.7.11 | radhat7 | 无 |
数据库安装步骤省略。。。。。
3.1、主从一致
主服务器
# mysqldump -uroot -p123 --all-databases > all.sql # scp all.sql
从服务器
# ls all.sql # mysql -uroot -p123 < all.sql
3.2、主数据库创建同步账号
mysql> CREATE USER ‘repl‘@‘192.168.7.11‘ IDENTIFIED BY ‘repl123‘ mysql> GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘192.168.7.11‘; mysql> GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘192.168.7.11‘;
3.3、修改主数据库配置文件
# vim /etc/my.cnf [mysqld] basedir = /usr/local/mysql datadir = /opt/data socket = /tmp/mysql.sock port = 3306 pid-file = /opt/data/mysql.pid user = mysql symbolic-links=0 log-error=/var/log/mysqld.log server-id=1 log-bin=mysql-bin skip-name-resolve # service mysqld restart # mysql -uroot -p123 mysql> show master status; //数据库状态 +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000002 | 154 | | | | +------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec) mysql>
3.4、配置从数据库
# vim /etc/my.cnf [mysqld] basedir = /usr/local/mysql datadir = /opt/data socket = /tmp/mysql.sock port = 3306 pid-file = /opt/data/mysql.pid user = mysql server-id=2 relay-log=mysql-relay-bin symbolic-links=0 log-error=/var/log/mysqld.log skip-name-resolve # service mysqld restart # mysqld -uroot -p123 //配置启动从数据库 mysql> CHANGE MASTER TO -> MASTER_HOST=‘192.168.7.11‘; -> MASTER_USER=‘repl‘, -> MASTER_PASSWORD=‘repl123‘, -> MASTER_LOG_FILE=‘mysql-bin.000002‘, -> MASTER_LOG_POS=154; mysql> start slave; mysql> show slave status \G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.7.11 Master_User: lzj Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000002 Read_Master_Log_Pos: 154 Relay_Log_File: mysql-relay-bin.000008 Relay_Log_Pos: 367 Relay_Master_Log_File: mysql-bin.000002 Slave_IO_Running: Yes Slave_SQL_Running: Yes
效果:
主mysql
从mysql
相关推荐
emmm00 2020-11-17
暗夜之城 2020-11-11
疯狂老司机 2020-09-08
yishouwangnian 2020-08-18
CharlesYooSky 2020-06-25
勇往直前 2020-06-09
weiguoxin 2020-06-09
javashixisheng 2020-06-05
tanyhuan 2020-05-27
cnzou 2020-04-23
sofast 2020-04-23
variab 2020-04-11
azhou 2020-02-23
hxw0 2020-07-26
Jaystrong 2020-07-28
tangjianft 2020-07-04
wangshuangbao 2020-07-04
KFLING 2020-06-13
TMD咯MySQL 2020-06-11