mysql.dcp_Mysql主从复制

一)Mysql主从复制图解

52707220d0a9fd2feacd5e4cb5ab8b92.png

二)实现过程

注意事项:

主和从mysql版本需要一致,如果不一致,主的必须低于从的,如果是新的主机刚安装的服务,复制都是从0开始,如果主服务器已经运行过了一段时间,并且存在了数据集,这时就需要把主服务器备份后,然后从主服务器备份的时所处的位置进行开始复制。

大致的配置过程:

1)修改Server-id,主和从的不能一致

2)主服务器启动二进制日志

3)主服务器创建一个账号给从使用

4)从服务器需要启动中继日志,不需要启动binlog二进制日志

5)使用主服务器授权的账号,进行连接主服务器

6)启动从服务器,从而主从复制开始

具体操作如下:

1)服务器的版本,主从均是一样的系统版本。

[root@station141 ~]# cat /etc/issue

CentOS release 6.4 (Final)

Kernel \r on an \m

Mage Education Learning Services

http://www.magedu.com

[root@station141 ~]# uname -r

2.6.32-358.el6.x86_64

[root@station141 ~]# uname -a

Linux station141.magelinux.com 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

[root@station141 ~]# uname -n

station141.magelinux.com

[root@station141 ~]# uname -m

x86_64

2)mysql的安装这里使用的是源码编译安装的安装依赖包和cmake

yum -y install readline-devel zlib-devel openssl-devel cmake gcc gcc-c++ make cmake ncurses-devel libtool

yum groupinstall “Development tools”

tar xf mysql-5.5.33.tar.gz

mkdir /mydata/data -p

groupadd -r mysql

useradd -g mysql -r -d /mydata/data mysql

cd mysql-5.5.33

[root@localhost mysql-5.5.33]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  -DMYSQL_DATADIR=/mydata/data -DSYSCONFDIR=/etc  -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=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_ciWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

ps:

如果编译的时候报错的话,删除CMakeCache.txt这个文件,在重新执行编译即可。

make && make install

chown :mysql ./* -R

chown -R mysql.mysql /mydata/data/

scripts/mysql_install_db --user=mysql --datadir=/mydata/data/  --basedir=/usr/local/mysql 数据初始化

cp support-files/mysql.server /etc/rc.d/init.d/mysqld

chmod +x /etc/rc.d/init.d/mysqld

chkconfig --add mysqld

cp support-files/my-large.cnf /etc/my.cnf

mkdir -pv /mydata/data

vim /etc/my.cnf

datadir = /mydata/data存放数据路径

vim /etc/profile.d/mysql.sh

export PATH=/usr/local/mysql/bin:$PATH

启动mysqld

service mysqld restart

安装完成。主从安装同上。

主操作:

vim /etc/my.cnf

log-bin=/mydata/data/mysql-bin目录随便定义

server-id       = 1

创建目录,并且修改权限

mkdir -pv /mydata/binlogs/

chown -R mysql.mysql /mydata/binlogs/

启动mysql

[root@station141 ~]# /etc/init.d/mysqld restart

创建账号授权的账号为Andy,密码为Andy.com.

grant replication slave,replication client on *.* to ‘Andy’@‘172.16.%.%' identified by 'Andy.com';

刷新授权表,让创建的用户立刻生效

flush privileges;

从服务器操作:

vim /etc/my.cnf

server-id       = 10

relay-log = /mydata/relaylogs/relay-bin中继日志路径

关闭binlog

log-bin=OFF或者注释掉

复制权限:

chown -R mysql.mysql /mydata/relaylogs/

启动服务器:

/etc/init.d/mysqld restart

查看中继日志是否启动mysql> show global variables like '%relay%';

+-----------------------+-----------------------------+

| Variable_name         | Value                       |

+-----------------------+-----------------------------+

| max_relay_log_size    | 0                           |

| relay_log             | /mydata/relaylogs/relay-bin |

| relay_log_index       |                             |

| relay_log_info_file   | relay-log.info              |

| relay_log_purge       | ON                          |

| relay_log_recovery    | OFF                         |

| relay_log_space_limit | 0                           |

| sync_relay_log        | 0                           |

| sync_relay_log_info   | 0                           |

+-----------------------+-----------------------------+

9 rows in set (0.12 sec)

连接主服务器:

change master to master_host=’172.16.100.7‘,master_user=’Andy‘,master_password=‘Andy.com’;

备注:我这里之所以没有写binlog和pos是因为我是新安装的数据库,如果你的数据库操作过需要特殊指定。

例如:

change master to master_host='192.168.254.103',master_user='andy',master_password='andy.com',master_log_file='mysql-bin.000004',master_log_pos=355;

启动从服务器线程:

start slave

查看从服务器的两个线程是否都已启动

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

主服务器创建库测试同步

c421fafafc46369b5a093e962c51f132.png

从服务器上查看

49bf57f59c55438ac409b65b2c87521a.png

PS:

主从复制完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值