一,Mysql版本:MySQL-5.6.24-1.linux_glibc2.5.x86_64.rpm-bundle.tar 主从库要求版本一致,不一致的话谁也不知道会出现什么问题。
数据库安装方式:http://www.youxijishu.com/blogs/26.html
二,主库IP:192.168.0.201
从库IP:192.168.0.202
三,修改主库的配置my.cnf文件
linux上里入/etc文件夹,vi my.cnf 如果没有这个文件,则手动创建一个,添加如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
server_id = 10001 #数据库的唯一id
log
-bin =mysqlmaster-bin.
log
sync_binlog=1
innodb_flush_log_at_trx_commit=1
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO
lower_case_table_names=1
log_bin_trust_function_creators=1
#relay-log=relay-bin
#relay-log-index = relay-bin-index
binlog-
do
-db=test1 #需要同步的数据库记录到日志中
binlog-
do
-db=test2
replicate-
do
-db=test1 #同步数据库
replicate-
do
-db=test2
binlog-ignore-db=mysql #不对mysql库进行日志记录操作 如下意思雷同
binlog-ignore-db=test
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
replicate-ignore-db=test #不对test进行复制操作 如下意思雷同
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
|
重启mysql : service mysql restart
四,修改从数据库配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
[mysqld]
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....
server_id = 10002
log
-bin=mysqlslave-bin.
log
sync_binlog=1
innodb_flush_log_at_trx_commit=1
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_AUTO_VALUE_ON_ZERO
lower_case_table_names=1
log_bin_trust_function_creators=1
binlog-
do
-db=test1
binlog-
do
-db=test2
replicate-
do
-db=test1
replicate-
do
-db=test2
binlog-ignore-db=mysql #不对mysql库进行日志记录操作 如下意思雷同
binlog-ignore-db=test
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
replicate-ignore-db=test #不对test进行复制操作 如下意思雷同
replicate-ignore-db=mysql
replicate-ignore-db=information_schema
replicate-ignore-db=performance_schema
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
|
保存退出,并重启mysql
五,在主数据库创建一个来用执行主从复制的用户账号
1,进入主数据库: mysql -uroot -p123456
2, 创建用用:create user 'slaveroot2'@'192.168.0.202' identified by '123456'; //这里的192.168.0.202是从数据库的主机IP,创建的用户名是slaveroot2,密码是123456
3,给账号加权限:grant replication slave on *.* to 'slaveroot2'@'192.168.0.202' identified by '123456';
4,使账号生效:flush privileges;
六,启动主从同步
1,进入从数据库:mysql -uroot -p123456
2,,配置连接主数据库:CHANGE MASTER TO MASTER_HOST='192.168.0.201',MASTER_USER='slaveroot2',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysqlmaster-bin.000001',MASTER_LOG_POS=332;
注:MASTER_LOG_FILE和MASTER_LOG_POS这两个的值可以在主数据库执行show master status查看到。
3,接着执行:start slave;
4,再执行:SHOW slave STATUS \G
可以看到Slave_IO_Running: YesSlave_SQL_Running: Yes(尽量在mysql的图形管理界面查看)
接下来你可以在主数据库上创建数据库、表、插入数据,然后看从数据库是否同步了这些操作! 如果转载,请注明来自游戏技术网: http://www.youxijishu.com/blogs/74.html