您的位置:首页 > 数据库 > MySQL

MySQL主从复制

2015-04-15 21:25 169 查看
mysql主从复制
Master:192.168.10.92
Slave:192.168.10.93

#安装MySQL数据库软件包,并启动MySQL
yum -y install mysql mysql-server
server mysqld start
chkconfig mysqld on

#修改MySQL数据管理密码
mysqladmin -u root password 'redhat'

#修改主服务器Master
vim /etc/my.cnf
[mysqld]
log-bin=mysql-bin   #启用二进制日志
server-id=92     	#服务器唯一ID,默认是1,一般取IP最后一段

#修改从服务器slave
vim /etc/my.cnf
mysqld]
log-bin=mysql-bin   #启用二进制日志
server-id=93        #服务器唯一ID,默认是1,一般取IP最后一段

#两台服务器启动MySQL
service mysqld restart

#主服务器上建立帐户并授权Slave
mysql>mysql -uroot -p
mysql>GRANT REPLICATION SLAVE ON *.* to 'mysync'@'192.168.10.93' identified by 'redhat'; 		#192.168.10.93从MySQL IP地址

#登录主服务器的MySQL,查询Master的状态
mysql>show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      308 |              |                  |
+------------------+----------+--------------+------------------+
#执行完此步骤后不要再操作主服务器MySQL,防止主服务器状态值有所变化

#配置从服务器Slave:
change master to master_host='192.168.10.92',master_user='mysync',master_password='redhat',master_log_file='mysql-bin.,000001',master_log_pos=308;   #注意不要断开,“308”无单引号

start slave;   		#启动从服务器复制功能

#检查从服务器复制功能状态:
show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.10.92  			#主服务器地址
Master_User: mysync         			#授权帐户名,尽量避免使用root
Master_Port: 3306           			#数据库端口
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 527       				#同步读取二进制日志的位置,大于等于>=Exec_Master_Log_Pos
Relay_Log_File: ddte-relay-bin.000002
Relay_Log_Pos: 672
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: Yes       				#此状态必须YES
Slave_SQL_Running: Yes       				#此状态必须YES

#Slave_IO及Slave_SQL进程必须正常运行,即YES状态,出现NO就是错误的状态,至此主从服务器配置完成

#主从服务器测试,主服务器MySQL建库建表,并在表中插入一条测试数据
mysql>create database testdb;
mysql>use testdb;
mysql>create table testtable1(id int(3),name char(10));
mysql>insert into testtable1 values(001,'wushanqiang');
mysql>show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| testdb             |
| mysql              |
| test               |
+--------------------+

#从服务器MySQL查询:
mysql>show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| testdb             |          #主服务器上的数据库过来了
| mysql              |
| test               |
+--------------------+
#从服务器查询数据
mysql>use testdb
mysql>select * from testtable1;
+------+------------+
| id   | name       |
+------+------------+
|    1 | wushanqian |		   #可以看到在主服务器上面写入的数据
+------+------------+


本文出自 “吴善强” 博客,请务必保留此出处http://shanqiangwu.blog.51cto.com/8067564/1633107
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: