最近几天,因为在学习mysql,所以看了一些书。初看书本,感觉学过oracle之后内容相对简单不少,所以跳过了一些基础的知识,但是这也让我吃了点苦头。
学习mysql没过多久,我就开始尝试进行mysql主从配置,这是mysql冗余的基本配置。也是每个mysql、dba必须要掌握的知识。
前期环境
vmware虚拟机 centos6.4 Linux操作系统 mysql5.1.69server
1、准备两台虚拟机 分别安装同样的操作系统和同样的数据库(我是在虚拟机上克隆完成此项工作的);
2、配置ip master:192.168.121.100 slave:192.168.121.95.另外由于是克隆产生的机器,因此机器的mac地址还是相同的。刚开始的时候网卡起不来。后来上网查了一下资料,解决办法是将一台机器的mac地址换掉。也不是随便换,在操作系统内会有三个mac地址 分别对应eth0、eth1、eth2。差出来mac地址后,改写/etc/sysconfig/network-scripts/ifcfg-eth0内device为eth1,然后将mac地址替换。具体如何查到mac地址的 我忘了。
3、开始搭建主从。
更改主my.cnf
增加server-id=1(*注意,一定要在mysqld下面加,如果在最后加肯定不行,这里走过弯路特别注意*)
log-bin=mysql-bin(开启日志功能)
登录主数据库,为从服务器增加访问权限:grant slave all on *.* to slave@192.168.121.100 identified by '123456';
此时,使用show master status;应该就有显示了
4、更改备my.cnf
增加server-id=2
log-bin=mysql-bin
登录mysql
执行change master to
master_host='192.168.121.100',master_user='slave',master_password='123456',master_port=3306,master_log_file='show master status结果',master_log_pos=show master status结果(要注意的是此处引号严格执行,另外这条语句是在从服务器上执行的,在主上执行不行,这里走了最大的弯路)。
5、配置完毕,下面进行验证
验证我试过各种方法,都写一下把:mysql -h 192.168.121.100 -u root -p验证是否有权限登录
show variables like "%log%";验证开启了哪些日志
show master status;验证主是否好使 这个很主要
show slave status;验证备是否好使
其中slave_io_running YES
slave_sql_running YES
很重要 这两个标志着主从配置的成功。