mysql的数据库双机热备

1、安装mysql

#apt-get install mysql-server

2、配置外部数据库访问

vi  /etc/mysql/my.cny

将下面这一条注释掉

bind-address 127.0.0.1

3、登录数据库

mysql -uroot -ppasswd

授权外网访问账号:

grant all on *.* to root@'%' identified by 'passwd' with grant option;

4、配置双机热备

主机ip:192.168.0.123

从机ip: 192.168.0.124

1)主机操作

#mysql -uroot -passwd

mysql>create database yccs_admin;

mysql>grant replication slave on *.* to 'root'@'192.168.0.124' identified by 'passwd';

编辑my.cny

在【mysqld】中去除下面注释:

servier-id  = 1

log_bin  = /var/log/mysql/mysql-bin.log

binlog-do-db= your_dbname           //如果有多个数据库需要同步,重复此参数,每个数据库一行

binlog-ignore-db=mysql //不同步的数据库

重新启动mysql

service mysql restart

通过命令查看:

show master status ;  //通过该命令获取fileposition,这个在配置slave的时候有用

2)从机配置

编辑【mysqld

server-id  = 2

replicate-do-db=your_dbname

replicate-ignore-db=mysql

slave-skip-errors= 1062   //加上这条

从新启动mysql服务

service mysql restart

登录并创建数据库:

mysql -uroot -ppasswd

create database yccs_admin

3)在主从服务器上执行

主: mysql> flush master;    flush  logs;

从:mysql> flush slave; flush logs;

4)在从服务器上执行如下命令

mysql>stop slave;

mysql>change master to master_host='192.168.0.123',master_user=root',master_password='passwd',master_port=3306,

master_log_file='mysql-bin.000001',master_log_pos=107;

mysql>start slave;

mysql>show slave status\G

如果slave_IO_running:yes     slave_sql_running:yes,那说明没有问题了,就可以再主机上面建库建表写测试数据了,然后

在从机器上查看有没有数据同步过来。

### 配置 Windows 环境下 MySQL 数据库双机热备 #### 准备工作 为了确保在 Windows 上成功配置 MySQL 的主从复制并实现双机热备,需先完成如下准备工作: - 安装相同版本的 MySQL 到两台用于测试的机器上,并确认每台服务器上的 root 用户名和密码一致[^2]。 #### 修改 my.ini 文件 对于 Master 和 Slave 两端都需要修改 `my.ini` 文件(位于 MySQL 安装目录),以适应各自的角色需求。具体来说,在 master 节点应添加或调整以下参数以便开启二进制日志记录功能以及指定唯一的 server-id: ```ini [mysqld] server-id=1 log-bin=mysql-bin binlog-format=mixed ``` 而在 slave 节点,则需要设置不同的 server-id 并指明其作为 slave 的身份: ```ini [mysqld] server-id=2 relay-log=mysql-relay-bin read-only=ON ``` #### 创建同步账户 为了让两个实例之间能够正常通信,还需要创建一个专门用来做数据同步工作的账号 repl_user_72 ,此操作可在任意一端执行即可: ```sql CREATE USER 'repl_user_72'@'%' IDENTIFIED BY 'a123456'; GRANT REPLICATION SLAVE ON *.* TO 'repl_user_72'@'%'; FLUSH PRIVILEGES; ``` 上述命令会授予该用户必要的权限来进行数据同步任务[^5]。 #### 同步初始状态 首次建立主从关系前,建议先让slave完全拷贝master当前所有的表结构及数据内容;可以通过导出备份文件再导入至另一方的方法达成目的。完成后记得获取最新的 binlog position 来初始化 IO thread 连接。 #### 开启主从同步 最后一步是在 slave 实例中启动 I/O Thread 及 SQL Thread ,使其正式成为 master 的 follower : ```sql CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl_user_72', MASTER_PASSWORD='a123456', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=<position>; START SLAVE; ``` 这里需要注意的是 `<position>` 应替换为实际取得的位置编号[^4]。 #### 使用 Keepalived 达成自动切换效果 由于简单的主从架构无法满足高可用性的要求——即当 primary node 发生故障时 secondary nodes 不具备接管服务的能力,因此推荐引入 keepalived 工具来辅助管理 VIP (Virtual IP Address),从而达到无缝迁移的目的[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值