实例说明:
主库IP:0.0.0.43
从库IP:0.0.0.194
一、配置主库 (0.0.0.43 )
1、编辑主库配置文件/etc/my.cnf,注意位置,添加在[mysqld]下面,不要添加到[mysqld_safe]下面
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
|
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
old_passwords=
1
max_connections=
10000
join_buffer_size = 64M
read_buffer_size = 128M
key_buffer = 512M
open-files-limit =
28196
query_cache_type=
2
query_cache_size = 32M
tmp_table_size = 1024M
long_query_time=
2
log-slow-queries = /var/log/mysql/slowquery.log
#以下开始是主从配置
server-id=
1
#主库一般是
1
,从库写别的,不重复就行
log-bin=my_binglog #开启日志记录,这样就可以支持主从了
log_bin=/var/log/mysql/mysql-bin.log
expire_logs_days=
10
max_binlog_size=100M
binlog_do_db=abc #需要被分发的主数据库名
binlog_ignore_db=test #不需要被分发的主数据库名
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
|
binlog_do_db为需要复制的db。 binlog_ignore_db为忽略复制的db。需要增加DB的话,就增加相应的一行。
2、重启master数据库,运行检查
1
2
3
4
5
6
7
8
|
mysql> show master status; #检查是否以master形式启动了。
#注意以下内容,这是作为主从同步的依据:
master_log_file主库当前的日志文件
master_log_pos主库的日志文件偏移量
mysql> show variables like
"%log%"
;
#需要看到这样的一行,说明binlog已经开启了: log_bin | ON
|
3.在master上为slave建立用户
1
|
mysql> grant replication slave,reload,
super
on *.* to
'slave'
@
'0.0.0.194'
identified by
'123456'
;
|
这样,主机配置完毕。
二、配置从库 (0.0.0.194 )
1、编辑从库配置文件/etc/my.cnf,注意位置,添加在[mysqld]下面,不要添加到[mysqld_safe]下面
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
|
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
old_passwords=
1
max_connections=
10000
join_buffer_size = 64M
read_buffer_size = 128M
key_buffer = 512M
open-files-limit =
28196
query_cache_type=
2
query_cache_size = 32M
tmp_table_size = 1024M
long_query_time=
2
log-slow-queries = /var/log/mysql/slowquery.log
#以下开始是主从配置
server-id=
2
#主库一般是
1
,从库写别的,不重复就行
binlog_do_db=abc #需要被分发的主数据库名
binlog_ignore_db=test #不需要被分发的主数据库名
#主从配置内容结束
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
|
2、登录从库,执行从库配置命令
1
|
master TO master_host=
'0.0.0.43'
, master_port=
3306
, master_user=
'slave'
, master_password=
'123456'
, master_log_file=
'my_binglog.000001'
, master_log_pos=
107
;
|
然后start slave
检查salve状态
1
2
|
slave:mysql> show slave status;
#很多很多列
|
6.将主机数据 copy 过来
1
2
3
4
5
|
//清空表缓存并且锁住表
mysql>flush tables with read lock;
//查看binlog并记录下来
mysql>show master status;
file+position就是slave复制的起点
|
master用mysqldump导出
mysqldump -h192.168.1.109 -uroot -prpassoot360 --default-character-set=utf8 zanshop>/web/zanshop0817.utf8.sql
slave建好同名数据库,导入
mysql>source /web/zanshop0817.utf8.sql;(在mysql命令下执行,可导入表,先创建数据库且设置编码为utf-8,然后要使用 use zanchaoshi; 进入数据库)
1. //解除数据库锁定
2. mysql>unlock tables;
顺序重启主从两个数据库
7.完毕,在主数据库进行增删修改,看从数据库是否有更新。
源自:http://www.luochunhui.com/id/550
http://www.d5s.cn/archives/95
CHANGE master TO master_host='119.254.85.35', master_port=3306, master_user='slave', master_password='123456', master_log_file='mysql-bin.000049', master_grant replication slave,reload,super on *.* to 'slave'@'%' identified by '123456';
CHANGE master TO master_host='119.254.85.35', master_port=3306, master_user='slave', master_password='123456', master_log_file='mysql-bin.000049', master_log_pos=107;
log_pos=107;