1、MYSQL主从复制环境构建至少需2台服务器,可以配置1主多从,多主多从,如下为1主1从
(1)系统环境准备
Master:192.168.0.117
Slave:192.168.0.118
(2) master 安装与配置
在/etc/my.cnf 配置文件[mysqld]段中加入如下代码,然后重启MYSQL服务即可
server-id = 1
log-bin = mysql-bin
完整配置如下
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
thread_concurrency = 8
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
Master数据库服务器命令行中 创建tongbu用户及密码并设置权限,执行如下命令,查看bin-log文件及position点,
grant replication slave on *.* to 'tongbu'@'%' identified by '123456';
show master status;
(3)slave 安装
MASTER与Slave端server-id不能一样,Slave端也无需开启bin-log功能:
server-id = 2
Slave指定Master IP、用户名、密码、bin-log文件名(mysql-bin.000006)及position(251)
change master to master_host='192.168.0.117',master_user='tongbu',master_password='123456',master_log_file='mysql-bin.000006',master_log_pos='251';
在slave启动slave start,并执行show slave status\G查看Mysql主从状态:
slave start;
show slave status\G
查看Slave端IO线程、SQL线程状态均为YES,代表Slave已正常连接Master实现同步:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Slave_IO_State I/O线程连接Master状态;
Master_User 用于连接Master的用户;
Master_Port Master端监听端口;
Connect_Retry 主从连接失败,重试时间间隔;
Master_Log_File I/O线程读取的Master二进制日志文件的名称。
Read_Master_Log_Pos I/O线程已读取的Master二进制日志文件的位置;
Relay_Log_File SQL线程读取和执行的中继日志文件的名称。
Relay_Log_Pos SQL线程已读取和执行的中继日志文件的位置;
Relay_Master_Log_File SQL线程执行的Master二进制日志文件的名称;
Slave_IO_Running I/O线程是否被启动并成功地连接到主服务器上;
Slave_SQL_Running SQL线程是否被启动;
Replicate_Do_DB 指定的同步的数据库列表;
Skip_Counter SQL_SLAVE_SKIP_COUNTER设置的值;
Seconds_Behind_Master Slave端SQL线程和I/O线程之间的时间差距,单位为秒,常被用于主从延迟检查方法之一。
(4)在master上创建看是否能同步 创建hello