mysql的主从,主主,半同步,SSL复制

本实验的目的是实现两台主机上的MySQL数据复制,以及基于SSL的复制。

*要注意的两点问题所在:

1,版本问题:复制双方的版本最好一致,若不同,从节点的版本必须高于主节点的版本

2,复制起点问题:(1),从0开始,使用于均为新建服务器。(2),中间开始,就需要完全备份主服务上的数据,并将数据恢复至从服务器; 从服务器从备份时主服务器二进制日志所在位置开始复制。

实验环境:

node1:MASTER MariaDB 172.16.18.1

node2:SALVE MariaDB 172.16.18.2

配置过程:master:1、启用二进制日志2、定义server-id3、创建有复制权限的账号REPLICATION SLAVE, REPLICATION CLIENTMariaDB [(none)]> GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO repluser@’172.16.%.%’ IDENTIFIED BY ‘replp@ss’;Query OK, 0 rows affected (0.03 sec)MariaDB [(none)]> FLUSH PRIVILEGES;Query OK, 0 rows affected (0.00 sec)slave:1、启动中继日志2、定义server-id3、使用有复制权限的账号连接master4、启动io thread以及sql thread

实验模型一:从零复制MySQL

安装MySQL的方法此处不做讲解,不会的可以查看此链接

首先配置node1,主MySQL

首先指定自己的二进制日志存放位置。

log-bin=/mydata/logs/mysql-bin #指定二进制日志存放位置

mkdir /mydata/logs -pv #创建二进制文件存放目录

chown -R mysql.mysql /mydata/ #修改logs属主属组为mysql

此节点的server-id = 1 不用修改。但要保证从节点可次server-id的不一样。

配置node2:从MySQL

修改配置文件

server-id = 2 #指定server-id号

relay-log = /mydata/relaylogs/relay-log #指定relay-log的位置以及名称

#log-bin=mysql-bin #关闭二进制日志。

启动node1,node2的MySQL

去主MySQL创建有复制权限的账号。node1

MariaDB [(none)]> GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO relay@’172.16.18.2′ IDENTIFIED BY ‘relay’;

Query OK, 0 rows affected (0.24 sec)

注意授权账号时要最小权限,最好指定授权给那个IP,不要给出多余的权限。

MariaDB [(none)]> FLUSH PRIVILEGES; #刷新。

Query OK, 0 rows affected (0.04 sec)

MariaDB [(none)]> show master status; 查看当前日志和位置。

好的,主节点的复制权限账号建立好了,下边去从节点连接主节点。

连接主节点的命令CHANGE MASTER TO

MariaDB [(none)]> HELP CHANGE MASTER TO #查看一下命令的帮助

Name: ‘CHANGE MASTER TO’

Description:

Syntax:

CHANGE MASTER TO option [, option] …

option:

MASTER_BIND = ‘interface_name’

| MASTER_HOST = ‘host_name’ # 指明要连接的主节点,值类型字串

| MASTER_USER = ‘user_name’ # 具有复制权限的账号,值类型为字串

| MASTER_PASSWORD = ‘password’ # 上述用户的密码,值类型为字串

| MASTER_PORT = port_num #如果MySQL修改了端口,此处也要指定

| MASTER_CONNECT_RETRY = interval

| MASTER_HEARTBEAT_PERIOD = interval

| MASTER_LOG_FILE = ‘master_log_name’ # 复制起点,,主节点上二进制日志,值类型为字串

| MASTER_LOG_POS = master_log_pos# 复制起点,主节点上二进制日志中起始事件的位置,值类型为数值

| RELAY_LOG_FILE = ‘relay_log_name’

| RELAY_LOG_POS = relay_log_pos

| MASTER_SSL = {0|1} #基于SSL复制

| MASTER_SSL_CA = ‘ca_file_name’ #CA文件名

| MASTER_SSL_CAPATH = ‘ca_directory_name’ #CA路径

| MASTER_SSL_CERT = ‘cert_file_name’

| MASTER_SSL_KEY = ‘key_file_name’

| MASTER_SSL_CIPHER = ‘cipher_list’

| MASTER_SSL_VERIFY_SERVER_CERT = {0|1}

| IGNORE_SERVER_IDS = (server_id_list)

MariaDB [(none)]> CHANGE MASTER TO MASTER_HOST=’172.16.18.1′,MASTER_USER=’relay’,MASTER_PASSWORD=’relay’,MASTER_LOG_FILE=’mysql-bin.000001′,MASTER_LOG_POS=489;

Query OK, 0 rows affected (0.08 sec)

查看从节点状态信息:

MariaDB [(none)]> show slave status\G

*************************** 1. row ***************************

痛苦留给的一切,请细加回味!苦难一经过去,苦难就变为甘美。

mysql的主从,主主,半同步,SSL复制

相关文章:

你感兴趣的文章:

标签云: