MySQL主从实验
前提条件
- 需要两台服务器。
这里我是用两台虚拟机,ip分别为10.0.113.1、10.0.113.2
IP | 角色 |
---|---|
10.0.113.1 | 主库(写入) |
10.0.113.2 | 从库(读取) |
- 两台都需要关闭防火墙 setenforce 0
service iptables stop - /etc/rc.d/init.d/mysqld restart #查看mysql是否正常
- chkconfig mysqld on #加入开机计划
修改主服务器
vim /etc/my.cnf
binlog_do_db = test
binlog_ignore_db = mysql
log-bin=mysql-bin #开启
server-id = 1 #主服务器IP地址的最后一位数
修改从服务器
vim /etc/my.cnf
server-id = 1 #主服务器ip
replicate_do_db = test
replicate_ignore_db = mysql
重启两台服务器
两台服务器创建完全一样的表结构
create table user(id int(11) primary key
auto_increment
not null,
username varchar(64),
gender tinyint(1),
age int(3),
create_time int(10))engine=MyISAM default charset=utf8;
在主服务器上创建同步权限的账号
create user 'user'@'X.X.X.X' identified by 'password';
grant replication slave on *.* to 'sjw'@'%' identified by '123456'; #sjw为用户名 123456 为密码
配置从服务器
mysql -uroot -pPassword #进入数据库
? change master to
mysql> change master to
-> master_host='10.0.113.1',
-> master_user='sjw',
-> master_password='123456',
-> master_port=3306,
-> master_log_file='mysql-bin.000020',
-> master_log_pos=768;
start slave #开启从服务器
show slave status \G;
看到
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
代表成功