数据库主从配置入门级(Mysql5.6)
程序员文章站
2024-03-20 21:45:10
...
简介
在实际的生产环境中,对数据库的读和写都在同一个数据库服务器中,是不能满足实际需求的。无论是在安全性、高可用性还是高并发等各个方面都是完全不能满足实际需求的。因此,通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。mysql主从复制是对数据库中的数据、语句做备份。
以上为资料借鉴引用。
配置准备
数据库版本:MySQL mysql-5.6.40
主机A:192.168.1.1 (Master)
主机B:192.168.1.2 (Slave)
安装主从数据库安装步骤请参阅Linux环境MySql安装博文
配置Master库
#打开数据库配置文件
vim /etc/my.cnf
在[mysqld]下方加入
server-id = 1 #用于标识唯一的数据库
log-bin=master-bin
log-bin-index=master-bin.index
binlog-do-db=smart_db_study #表示只对smart_db_study库进行同步
binlog-ignore-db=mysql #同步时忽视mysq库
重启Master数据库
service mysqld restart
登录查看配置信息
#1.登录
mysql -u root -p
#1.查看
show master status;
+------------------+----------+--------------+----------------------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+----------------------------------+-------------------+
| mysql-bin.000004 | 76033| smart_db_study| mysql | |
+------------------+----------+--------------+----------------------------------+-------------------+
1 row in set (0.00 sec)
这里的 File 、Position 是在配置Salve的时候要使用到的,Binlog_Do_DB表示要同步的数据库,Binlog_Ignore_DB 表示忽略的数据库,这些都是在my.cnf配置的时候进行指定的。
另外:如果执行这个步骤始终为Empty set(0.00 sec),那说明前面的my.cnf没配置对
配置Slave库
#打开数据库配置文件
vim /etc/my.cnf
在[mysqld]下方加入
server-id = 2 #用于标识唯一的数据库
log-bin=slave-relay-bin
log-bin-index=slave-relay-bin.index
修改完/etc/my.cnf重启数据库
#登录从库
mysql -u*** -p***
#停止slave
start stop;
#指定Master库的信息
change master to master_host='XXX',master_user='XXX',master_password='XXX',master_port='XXX',master_log_file='mysql-bin.000004', master_log_pos=76348;
#启动slave
start slave;
备注master_log_pos需与Master的Position 选项对应
#查看配置信息
show slave status;
#配置信息如下
Waiting for master to send event xxxx xxx xxx 60 master-bin.000004 76033 izm5e1s4au8d2yksb08zr4z-relay-bin.000008 76197 master-bin.000004 Yes Yes 0 0 76033 76552 None 0 No 0 No 0 0 1 126e60f7-4aa0-11e8-8425-00163e088490 /usr/local/mysql/data/master.info 0 Slave has read all relay log; waiting for the slave I/O thread to update it 86400 0
如果:Slave_IO_Running: Yes,Slave_SQL_Running: Yes则为配置成功
测试
#连接Master在smart_db_study对customer执行插入操作
INSERT INTO customer(name,contact) VALUE('zhanshan','test')
查看Slave的smart_db_study库customer数据