本渣是一名新手,下面是本渣搭建主从的过程。
1.准备两个虚拟机系统。
我的电脑里本来就装了一个linux虚拟机A,并且安装好了mysql。因为本渣比较懒,所以直接用VMware克隆出了第二个linux虚拟机系统B。A与B的所有文件和软件都是一样的,所以就省去了重新安装mysql和建表的麻烦。
2.配置主服务器
- 创建一个账号并赋予同步线程的权限
create user 'repl'@'192.168.55.129' identified by '123456';
grant replication slave on *.* to 'repl'@'192.168.55.129'; #该线程拥有超级用户权限,即使从库设为只读,该线程一样可以进行更新
- 开启binlog,只需在配置文件中加入
server_id =1 # 集群中每台服务器必须有不同的server_id
log_bin=/usr/local/mysql/mysql-bin # binlog日志的生成路径
binlog_format=row #binlog格式设为row格式,为了保证数据的最终一致性
log-error=/usr/local/mysql/mysql-err #错误日志,方便排查问题,挺好用
配置完,重启mysqld服务就可以了,此时mysql已经开启了binlog日志和错误日志
mysql> show master status; #可查看binlog文件和从库将从文件的哪个位置开始同步
3.配置从服务器
- 配置文件添加如下内容:
server-id=2 //设置从库的唯一标识符 从的必须比主小
relay-log=mysql-relay-bin //启用中继日志relay log
error-log=/opt/data/mysql.log #从库开启错误日志很重要,如果配置失败,将可以从错误日志中排查原因
重启mysql服务,这一步要注意,因为本渣是直接克隆出来的系统,所以数据库目录下的隐藏文件auto.cnf中uuid的值和主库是一样的,这个要改,不然会导致I/O线程出问题,至于怎么改,我是随便改的最后一个数字。还好有错误日志,以及show slave status\G;这个命令可以排查问题,不然我也是一脸懵。
- 接下里配置并启动主从复制
mysql> change master to
-> master_host='192.168.55.130',
-> master_user='repl',
-> master_password='123456',
-> master_log_file='mysql-bin.000001',
-> master_log_pos=154;
Query OK, 0 rows affected, 2 warnings (0.28 sec)
然后
show slave master\G;
只要下图圈起来的这三个项没问题,就没问题了,也就是说可以动手验证自己搭建的主从啦!