欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

基于半同步,ssl的mysql级联复制

程序员文章站 2022-04-06 15:45:33
...

基于半同步,ssl的mysql级联复制今天闲来无事做了一个mysql级联复制的实验拓扑如下:操作系统:centos6.4(64bit)数据库:mysql-5.5.35主服务器:node1.example

基于半同步,ssl的mysql级联复制


今天闲来无事 做了一个mysql级联复制的实验拓扑如下:

基于半同步,ssl的mysql级联复制

操作系统:centos6.4(64bit)

数据库:mysql-5.5.35

主服务器:node1.example.com (192.168.1.166)

ssl主服务器:node2.example.com (192.168.1.167 172.16.0.22)

ssl从服务器:client1.example.com(172.16.0.10 )

注意三台服务器 的时间一定要同步。

1.mysql安装[root@node1 ~]# fdisk /dev/sdb #新建个分区/dev/sdb1 [root@node1 ~]#partx -a /dev/sdb [root@node1 ~]#pvcreate /dev/sdb1 [root@node1 ~]#vgcreate vg_data /dev/sdb1 [root@node1 ~]#lvcreate -L 2G -n lv_data vg_data #存放数据 [root@node1 ~]#lvcreate -L 1G -n lv_log vg_data #存放二进制日志 #具体大小自己定 [root@node1 ~]#mkfs.ext4 /dev/vg_data/lv_data [root@node1 ~]#mkfs.ext4 /dev/vg_data/lv_log [root@node1 ~]#mkdir -pv /mydata/data [root@node1 ~]#mkdir -pv /mydata/log [root@node1 ~]#useradd -r -u 306 mysql [root@node1 ~]#mount /dev/vg_data/lv_data /mydata/data [root@node1 ~]#mount /dev/vg_data/lv_log /mydata/log [root@node1 ~]# chown mysql.mysql -R /mydata/data [root@node1 ~]#chown mysql.mysql -R /mydata/log [root@node1 ~]#yum install bison gcc gcc-c++ autoconf automake ncurses-devel cmake -y [root@node1 ~]#cd /tools [root@node1 tools]# tar -zxvf mysql-5.5.35.tar.gz [root@node1 tools]#cd mysql-5.5.35 [root@node1 mysql-5.5.35]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/data/mydata \ -DSYSCONFDIR=/etc \ -DWITH_INNOBASE_STORAGE=1 \ -DWITH_ARCHIVE_STORAGE=1 \ -DWITH_BLACKHOLE_STORAGE=1 \ -DWITH_READLINE=1 \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ -DWITH_LIBWRAP=0 \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci [root@node1 tools]# make && make install 注意:如果编译失败 需要make clean 并且rm -r CMakeCACHE.txt [root@node1 mysql-5.5.35]#cd /usr/local/mysql [root@node1 mysql]#cp supports-file/my-large.cnf /etc/my.cnf [root@node1 mysql]#cp supports-file/mysql.server /etc/rc.d/init.d/mysqld [root@node1 mysql]# scripts/msyql_install_db --user=mysql \ --datadir=/mydata/data [root@node1 mysql]#vim /etc/my.cnf #在mysqld 下添加 datadir=/mydata/data innodb_file_per_table=1 log-bin=/mydata/log/mysqlbin [root@node1 mysql]# chkconfig --add mysqld [root@node1 mysql]#/etc/init.d/mysqld start修改server-id: [root@node1 ~]# vim /etc/my.cnf [mysqld] server-id=10 [root@node1 ~]# /etc/init.d/mysqld restart 登录mysql mysql>grant replication client,replication slave on *.* to replicationuser@'192.168.1.167' identified by 'mypass'; mysql>flush privileges; mysql>show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000002 | 182 | | | +------------------+----------+--------------+------------------+

从服务器配置node2

修改server-id [root@node1 ~]# vim /etc/my.cnf [mysqld] server-id=20 skip_slave_start=1 log_slave_update=1 read_only=1 relay_log=/mydata/log/ log-bin=/mydata/log/mysql-bin [root@node1 ~]# /etc/init.d/mysqld restart [root@node1 ~]# mysql -ureplicationuser -pmypass -h192.168.1.166 #验证成功 [root@node1 ~]# mysql -uroot -p mysql>change master to master_host='192.168.1.166', master_user='replicationuser', master_password='mypass', master_log_file='mysql-bin.000002', master_log_pos=182; mysql>start slave; mysql> show slave status \G Slave_IO_Running: Yes Slave_SQL_Running: Yes Seconds_Behind_Master: 0