MySQL主从可以实现MySQL的读写分离,简言之,master上进行写操作,同步数据库,slave上进行读操作,可以极大的提升性能,降低服务器负载,在此不做赘述,下面以两台机器来做主从配置详解!
- 两个主机
主 | 10.8.152.117 | master |
从 | 10.8.13.42 | slave | - 准备工作
两台服务器 启动成功
关闭防火墙
相互ping 通 - master 上操作
vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
bind_address = 0.0.0.0
server-id = 117 #IP地址最后一位
log_bin = /var/log/mysql/mysql-bin.log #开启binlog 日志
expire_logs_days = 10 #日志的缓存时间
max_binlog_size = 200M #日志的最大大小
binlog_do_db = python #同步的数据库名称
binlog_ignore_db = mysql #忽略同步的数据库
- 在slave上做操作
vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
bind_address = 0.0.0.0
server-id = 42 #IP地址最后一位
expire_logs_days = 10 #日志的缓存时间
max_binlog_size = 200M #日志的最大大小
replicate_do_db = python #同步的数据库名称
replicate_ignore_db = mysql #忽略同步的数据库
- 两台服务器配置一模一样的数据库 数据表
mysql> use python;
Database changed
mysql> create table user(id int(11) primary key auto_increment not null,name varchar(32) not null)enginee=innodb default charset=utf8;
- 在master上创建一个同步权限的账户 用来同步数据
create user 'user'@'X.X.X.X' identified by 'password';
mysql> grant replication slave on *.* to 'pygodnet'@'%' identified by '123456';
show master status; 查看主库的状态 不要关闭窗口先 不要重启
- 配置从库
? change master to
mysql> change master to
-> master_host='10.8.152.117',
-> master_user='pygodnet',
-> master_password='123456',
-> master_port=3306,
-> master_log_file='mysql-bin.000001',
-> master_log_pos=1131;
如果出现它 就是成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
stop slave;
步骤并不复杂,实际操作下哟,有问题欢迎留言!