Heim > Datenbank > MySQL-Tutorial > mysql数据库互为主从配置_MySQL

mysql数据库互为主从配置_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-01 13:49:33
Original
1224 Leute haben es durchsucht

bitsCN.com

mysql主从配置小记:

共有四台机器:A(10.1.10.28),B(10.1.10.29),C(10.1.10.30),D(10.1.10.31)。
配置后结果:A-C互为主从,B为A的slave,D为C的slave。


0)准备工作

在四台机器上面安装好mysql后,创建用于同步的账号。

添加账户:

INSERT INTO user (Host,User, Password,Select_priv,Insert_priv,Update_priv,Delete_priv, Create_priv,Drop_priv) VALUES('%','test',password('test'),'Y','Y','Y','Y','Y','Y');
Nach dem Login kopieren


刷新数据库:

FLUSH PRIVILEGES;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren


1)配置A-C互为主从

修改A配置文件为:

server-id   = 1replicate-do-db=testreplicate-do-db=test_adminlog-bin=mysql-binlog-slave-updatesreplicate-wild-do-table=test.%replicate-wild-do-table=test_admin.%binlog-ignore-db=mysqlslave-skip-errors=all
Nach dem Login kopieren


修改C配置文件为:

server-id   = 3binlog-do-db=testbinlog-do-db=test_adminlog-bin=mysql-binlog-slave-updatesreplicate-wild-do-table=test.%replicate-wild-do-table=test_admin.%binlog-ignore-db=mysqlslave-skip-errors=all
Nach dem Login kopieren


重启mysql是配置生效

将A设置为主:
停止同步:

slave stop;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

清空服务器master日志:

reset master;
Nach dem Login kopieren
Nach dem Login kopieren


授权同步账号:

GRANT REPLICATION SLAVE ON *.* TO 'test'@'%' IDENTIFIED BY 'test';
Nach dem Login kopieren
Nach dem Login kopieren


刷新授权:

FLUSH PRIVILEGES;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren


锁定数据库:

flush tables with read lock;
Nach dem Login kopieren
Nach dem Login kopieren


将C设置为从:
停止同步:

slave stop;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren


配置同步信息:

CHANGE MASTER TO MASTER_HOST='10.1.10.28', MASTER_USER='test', MASTER_PASSWORD='test', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107;
Nach dem Login kopieren
Nach dem Login kopieren


将C设置为主:
停止同步:

slave stop;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren


清空服务器master日志:

reset master;
Nach dem Login kopieren
Nach dem Login kopieren


授权同步账号:

GRANT REPLICATION SLAVE ON *.* TO 'test'@'%' IDENTIFIED BY 'test';
Nach dem Login kopieren
Nach dem Login kopieren


刷新授权:

FLUSH PRIVILEGES;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren


锁定数据库:

flush tables with read lock;
Nach dem Login kopieren
Nach dem Login kopieren


将A设置为从:
停止同步:

slave stop;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren


配置同步信息:

CHANGE MASTER TO MASTER_HOST='10.1.10.30', MASTER_USER='test', MASTER_PASSWORD='test', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107;
Nach dem Login kopieren
Nach dem Login kopieren


2)将B设置为A的从

server-id   = 2replicate-do-db=testreplicate-do-db=test_adminlog-bin=mysql-binlog-slave-updatesreplicate-wild-do-table=test.%replicate-wild-do-table=test_admin.%binlog-ignore-db=mysqlslave-skip-errors=all
Nach dem Login kopieren



重启mysql服务

停止同步:

slave stop;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren


配置同步信息:

CHANGE MASTER TO MASTER_HOST='10.1.10.28', MASTER_USER='test', MASTER_PASSWORD='test', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107;
Nach dem Login kopieren
Nach dem Login kopieren


启动同步:

slave start;
Nach dem Login kopieren
Nach dem Login kopieren


3)将D设置为C的从

server-id   = 4replicate-do-db=testreplicate-do-db=test_adminlog-bin=mysql-binlog-slave-updatesreplicate-wild-do-table=test.%replicate-wild-do-table=test_admin.%binlog-ignore-db=mysqlslave-skip-errors=all
Nach dem Login kopieren


重启mysql服务

停止同步:

slave stop;
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren


配置同步信息:

CHANGE MASTER TO MASTER_HOST='10.1.10.30', MASTER_USER='test', MASTER_PASSWORD='test', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107;
Nach dem Login kopieren
Nach dem Login kopieren


启动同步:

slave start;
Nach dem Login kopieren
Nach dem Login kopieren

完成之后可以创建添加数据测试一下是否可以。

下面是常见错误处理:

1)change master导致的:              Last_IO_Error: error connecting to master 'repl1@IP:3306' - retry-time: 60  retries2)    在没有解锁的情况下停止slave进程:     mysql> stop slave;ERROR 1192 (HY000): Can't execute the given command because you have active locked tables or an active transaction3)change master语法错误,落下逗号mysql> change master to    -> master_host='IP'    -> master_user='USER',    -> master_password='PASSWD',    -> master_log_file='mysql-bin.000002',    -> master_log_pos=106;ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'master_user='USER',master_password='PASSWD',master_log_file='mysql-bin.000002' at line 3 4)在没有停止slave进程的情况下change mastermysql> change master to master_host=‘IP', master_user='USER', master_password='PASSWD', master_log_file='mysql-bin.000001',master_log_pos=106;ERROR 1198 (HY000): This operation cannot be performed with a running slave; run STOP SLAVE first5)A B的server-id相同:Last_IO_Error: Fatal error: The slave I/O thread stophotoshop/ target=_blank class=infotextkey>ps because master and slave have equal MySQL server ids;these ids must be different for replication to work (or the --replicate-same-server-id option must be used onslave but this does not always make sense; please check the manual before using it).查看server-idmysql> show variables like 'server_id';手动修改server-idmysql> set global server_id=2; #此处的数值和my.cnf里设置的一样就行mysql> slave start;6)change master之后,查看slave的状态,发现slave_IO_running 为NO
Nach dem Login kopieren

 

bitsCN.com
Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
So ändern Sie MySQL in MySQL
Aus 1970-01-01 08:00:00
0
0
0
MySQL-Startfehler unter Centos
Aus 1970-01-01 08:00:00
0
0
0
MySQL stoppt den Prozess
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage