主从复制数据库注意时间要同步:
|
1
|
ntpdate 172.18.0.1
#以本局域网的某一主机作为时钟服务器
|
主服务器:
|
1
2
3
4
5
6
|
vim
/etc/my
.cnf.d
/server
.cnf
[server]
skip_name_resolve=ON
//
忽略名称解析
innodb_file_per_table=ON
//
每个存储表占用一个单独文件
server_id = 1
//
服务
id
,必须存在
log_bin = msater-bin
//
二进制日志,本处是相对路径,相对于
/var/lib/mysql
|
启动mariadb.service服务
|
1
2
3
4
5
6
7
8
|
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO
'repluser'
@
'192.168.1.%'
IDENTIFIED BY
'centos'
;
//
授权从服务的复制用户
//REPLICATION
SLAVE 常用于建立复制时所需要用到的用户权限
//REPLICATION
CLIENT 不可用于建立复制,有该权限时,只是多了可以使用如
"SHOW SLAVE STATUS"
、
"SHOW MASTER STATUS"
等命令。
FLUSH PRIVILEGES;
//
写入磁盘
SHOW MASTER STATUS;
//
查看二进制日志状态
|
从服务器:
|
1
2
3
4
5
6
7
|
vim
/etc/my
.cnf.d
/server
.cnf
[server]
skip_name_resolve = ON
innodb_file_per_table = ON
server_id = 2
relay_log = relay-log
//
中继日志用于存放从主服务器上读取的二进制内容
read_only=ON
//
从服务器只读不能写入
|
启动mariadb.service服务
|
1
2
3
4
5
6
|
CHANGE MASTER TO MASTER_HOST=
'192.168.1.101'
,MASTER_USER=
'repluser'
,MASTER_PASSWORD=
'centos'
,MASTER_LOG_FILE=
'master-log.000003'
,MASTER_LOG_POS=495;
//
连接到主服务器的授权账户,并从指定二进制日志位置开始复制
START SLAVE IO_THREAD,SQL_THREAD;
//
开启从节点的IO和SQL进程,前者是从主服务器复制时的IO操作,后者是从服务器本身进行的SQL操作
SHOW SLAVE STATUS\G;
//
最后查看从服务的状态,各个参数都能从字面意思得到解释,不再赘述
|
测试:
此时在主服务器上创建一个数据库或者表,然后在从服务器上查看,是能够看到新创建的库或者表,虽然从本身并未创建任何东西;
至此主从复制完成
本文转自 a_pan 51CTO博客,原文链接:http://blog.51cto.com/panpangao/1981418