标签:
来自:http://www.osyunwei.com/archives/7269.html,改版
mysql主从复制
本文采用的是
centos6.5+mysql-5.6.23版本
之前在 windows7安装过主从复制,现在在linux实现主从复制
mysql安装方法:
http://www.cnblogs.com/lin3615/p/4376224.html
配置:
配置MySQL主服务器(192.168.179.142)
从服务器两台(192.168.179.146,192.168.179.147)
数据库就以 test为例,
// 从这里开始配置第一台从服务器
#建立一个MySQL主从数据库同步用户 lin3615,密码123456,并授予给192.168.179.146
登陆数据库,进入控制台
insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values(‘localhost‘,‘lin3615‘,password(‘123456‘),‘‘,‘‘,‘‘);
#刷新系统授权表
flush privileges;
#授权用户lin3615 只能从 192.168.179.146 这个IP访问主服务器192.168.179.142上面的数据库
grant replication slave on *.* to ‘lin3615‘@‘192.168.179.146‘ identified by ‘123456‘;
先把 主服务器的数据库复制到 从服务器,具体方法可参考:
http://www.cnblogs.com/lin3615/p/3749438.html
配置MySQL主服务器(192.168.179.142)的my.cnf文件
vim /etc/my.cnf
#编辑配置文件,在[mysqld]部分添加下面内容
server-id=1 #设置服务器id,为1表示主服务器,一般用IP地址接替 log-bin=mysql-bin #启动MySQ二进制日志系统 binlog-do-db=test #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行 binlog-ignore-db=mysql #不同步mysql系统数据库 #保存退出
service mysqld restart #重启MySQL mysql -h localhost -u root -p #登陆 show variables like ‘server_id‘; #查看server-id的值是否为1 mysql> show variables like ‘server_id‘; show master status; #查看主服务器,出现以下类似信息
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000011 | 107 | osyunweidb | mysql |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
注意:这里记住File的值:mysql-bin.000011和Position的值:107,后面会用到。
配置MySQL从服务器(192.168.179.146)的my.cnf文件
vim /etc/my.cnf #编辑配置文件,在[mysqld]部分添加下面内容 server-id=2 #设置服务器id,修改其值为2,表示为从数据库 log-bin=mysql-bin #启动MySQ二进制日志系统 replicate-do-db=test #需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行 replicate-ignore-db=mysql #不同步mysql系统数据库 read_only #设置数据库只读 service mysqld restart #重启MySQL
#进入MySQL控制台
#查看server-id的值,必须为上面设置的2,否则请返回修改配置文件
show variables like ‘server_id‘;
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 2 |
+---------------+-------+
1 row in set (0.01 sec)
#停止slave同步进程
stop slave; #此选项,之前测试时用 slave stop/slave start(启动),现在测试一直报错,日志无法查看,原来是命令不对,搞了半天才知道
#执行同步语句
change master to master_host=‘192.168.179.142‘,master_user=‘lin3615‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000001‘ ,master_log_pos=107;
#开启slave同步进程
start slave;
#查看slave同步信息
SHOW SLAVE STATUS\G
出现以下内容
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.21.128
Master_User: osyunweidbbak
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000011
Read_Master_Log_Pos: 107
Relay_Log_File: mysqlslave-relay-bin.000004
Relay_Log_Pos: 253
Relay_Master_Log_File: mysql-bin.000011
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: osyunweidb
Replicate_Ignore_DB: mysql
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 107
Relay_Log_Space: 560
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 1
1 row in set (0.00 sec)
mysql>
注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上这两个参数的值为Yes,即说明配置成功!
// 结束配置第一台从服务器
同理,配置第二台,从从服务器开始,重新设置一个新的用户名
即:
#建立一个MySQL主从数据库同步用户 lin3615_1,密码123456,并授予给192.168.179.147
insert into mysql.user(Host,User,Password,ssl_cipher,x509_issuer,x509_subject) values(‘localhost‘,‘lin3615_1‘,password(‘123456‘),‘‘,‘‘,‘‘);
重复第一台从库的设置即可
接着可以测试,在主库上进行 curd
标签:
原文地址:http://www.cnblogs.com/lin3615/p/5679828.html