CentOS5.3的mysql双机热备

花了大半天的时间研究mysql 5.0.* ,参考了很多文档,总算将mysql的双机热备给搞定了。心情很好,写个文章纪念一下。因为以后还可能实际用到,所以也作以下笔记。
使用两台虚拟机,nod1和nod2,分别设置两块网卡,桥接到主机网卡上。
nod1 eth0:192.168.145.162
eth1:192.168.254.1
nod2 eth0:192.168.145.168
eth1:192.168.254.2

1.基础安装mysql.
首先干净的系统,不是干净的系统不要紧,反正自己搞明白就行了。在nod1上安装mysql.

yum -y install mysql-server
chkconfig mysqld on
service mysqld start
mysqladmin -uroot password’1q2w3e’修改root密码。

nod2上同样方式安装mysql,并做如上操作。
2.nod1上mysql的设置。
在这里我就用test数据库来做测试,在test数据库里新建一个data表,并添加一些数据,具体操作如下:

#mysql -uroot -p1q2w3e

mysql> create table data(name VARCHAR(20), address VARCHAR(50), phone VARCHAR(20));
mysql>insert into data(name,address,phone) values(‘johnson’,’shanghai’,'135000000′);

mysql>select * from data;

+———+———-+———–+
| name | address | phone |
+———+———-+———–+
| johnson | shanghai | 135000000 |
+———+———-+———–+
1 row in set (0.01 sec)

设置数据库同步帐户:

mysql>GRANT REPLICATION SLAVE,REPLICATION CLIENT,RELOAD,SUPER ON *.* TO ‘backup’@'192.168.254.2′ IDENTIFIED BY ‘qawsed’;
(授与从192.168.254.2主机上登录用户backup数据复制权限,4.02版本以前用:GRANT FILE ON *.* TO backup@192.168.254.2 IDENTIFIED BY ‘qawsed’;)
mysql>flush privileges;
mysql> select user,host from user;
+——–+——————+
| user | host |
+——–+——————+
| root | 127.0.0.1 |
| backup | 192.168.254.2 |
| | localhost |
| root | localhost |
| | nod1.test.domain |
| root | nod1.test.domain |
+——–+——————+
6 rows in set (0.01 sec)

修改配置文件:
停止mysql服务
service mysqld stop
在[mysqld]中加入以下内容

server-id=1 #设置服务器的ID号
log-bin #设置同步log
binlog-do-db=test #设置同步数据库
max_binlog_size=104857600
replicate-same-server-id
master-host=192.168.254.2 #主机IP
master-user=backup
master-password=qawsed
master-port=3306
master-connect-retry=60 #断点重试间隔为60秒
replicate-do-db=test #表示同步test数据库
binlog-ignore-db=mysql #不同步的数据库

# service mysqld start //先启动mysql
# mysqldump -h localhost -u root -p1q2w3e test >test.sql
#scp test.sql root@192.168.2542:/ //(将test.sql复制到mysqlB的/目录下)
至此nod1服务器上有关mysql的设置已完成,下一步开始配置nod2
设置nod2
设置数据库同步帐户:
mysql>GRANT REPLICATION SLAVE,REPLICATION CLIENT,RELOAD,SUPER ON *.* TO ‘backup’@'192.168.254.1′ IDENTIFIED BY ‘qawsed’;
(授与从192.168.254.1主机上登录用户backup数据复制权限,4.02版本以前用:GRANT FILE ON *.* TO backup@192.168.254.1 IDENTIFIED BY ‘qawsed’;)
mysql>flush privileges;
修改配置文件:
停止mysql服务
#service mysqld stop
更改Mysql配置文件/etc/my.cnf
# vi /etc/my.cnf

server-id=2 #设置服务器的ID号
log-bin #设置同步log
binlog-do-db=test #设置同步数据库
max_binlog_size=104857600
replicate-same-server-id
master-host=192.168.254.1 #主机IP
master-user=backup
master-password=qawsed
master-port=3306
master-connect-retry=60 #断点重试间隔为60秒
replicate-do-db=test #表示同步test数据库
binlog-ignore-db=mysql #不同步的数据库

还原从mysqlA备份过的test.sql
#service mysqld start
# mysql -u root -p1q2w3e test
重启两边的mysql服务
查询配置
Show Slave status:此处Slave_IO_Running ,Slave_SQL_Running 都应该是yes,表示从库的I/O,Slave_SQL线程都正确开启.
在Mysql中可通过以下命令来查看主从状态
show master status 查看master状态
show slave status 查看slave状态
show processlist G 查看当前进程
stop slave 暂时停止slave进程
start slave 开始slave进程
在primary服务器上 MySQL命令符下输入:
mysql>show master status;

+——————-+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————-+———-+————–+——————+
| mysqld-bin.000001 | 196 | test | mysql |
+——————-+———-+————–+——————+
1 row in set (0.00 sec)

mysql>show slave status/G;

*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.254.1
Master_User: backup
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000001
Read_Master_Log_Pos: 235
Relay_Log_File: mysqld-relay-bin.000003
Relay_Log_Pos: 236
Relay_Master_Log_File: mysqld-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test
Replicate_Ignore_DB:
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: 235
Relay_Log_Space: 236
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
1 row in set (0.01 sec)

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test
表示正常!
到此mysql的双机互备已基本完成,在两台服务器的mysql数据库中任意添加数据,都可以同步到对端服务器上


 ---★ 本文转摘自『IT学习者』→ http://www.itlearner.com/article/4645

 

### 配置 MySQL 双机热备的最佳实践 #### 准备工作 为了确保在 CentOS 7 上成功配置 MySQL双机热备,需先完成一些准备工作。安装环境应保持两台服务器的操作系统版本相同,并且 MySQL 版本也要一致[^3]。 #### 安装 MySQL 和相关工具 对于 MySQL 客户端和服务端的安装,在 CentOS 系统下可以通过 RPM 包的形式来进行部署。例如,可选用 `MySQL-client-5.6.22-1.linux_glibc2.5.x86_64.rpm` 来作为客户端版本的选择之一[^2]。服务端同样需要下载对应的 MySQL Server RPM 文件并按照官方文档指导进行安装。 #### 主从复制设置 利用 MySQL 自带的 REPLICATION 功能来构建双机热备架构是一种常见的方式。这涉及到修改 my.cnf 或者 my.ini 中的相关参数以启用 binlog 日志记录以及指定唯一的 server-id 值给每台机器。另外还需要创建用于同步数据流传输所需的账户权限信息[^1]。 ```sql GRANT REPLICATION SLAVE ON *.* TO 'replication_user'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES; ``` #### 启动与验证 当所有的前期准备完成后,则可以在 Master 节点执行 `SHOW MASTER STATUS;` 获取当前二进制日志文件名及其位置;接着前往 Slave 节点通过命令连接到 Master 并启动 IO/SQL线程: ```sql CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='recorded_log_file_name', MASTER_LOG_POS=recorded_position; START SLAVE; ``` 最后一步就是确认整个过程无误——即查看 Slave_IO_Running 和 Slave_SQL_Running 是否均为 Yes 表明正常运行状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值