# Linux环境下的MySQL复制
在大多数情况下,采用不同的MySQL主从复制比较常见,不同ip地址的服务器上的MySQL服务器实现一对一复制跟上一节比较相似.
# 主从复制准备
确保主从服务器上安装了相同版本的数据库,设定主服务器的ip是192.168.1.100,从服务器的ip是192.168.1.101
登录主服务器,设置一个复制使用的账号,并授予replication slave权限.
```sql
grant replication slave on *.* to 'repl'#'192.168.1.101' identified by '123';
```
修改主数据库服务器的配置文件my.conf,开启binlog,并设置server-id的值.需要重启生效
```ini
[mysqld]
log-bin = /usr/local/var/mysql/mysql-bin
server-id = 1
```
在主服务器上设置锁定有效,这个操作为了确保没有数据库操作
```sql
flush tables with read lock;
```
查询主服务器行当前的二进制日志和偏移量.这个操作是为了在从服务器启动以后,从这个点进行数据库的恢复
```sql
show master status;
```
主数据停止更新操作,需要生成数据的备份可以通过MySQLdump导出数据.备份完成以后,恢复写操作
```sql
unlock tables;
```
修改从数据库的配置文件my.cnf,增加server-id参数.server-id的值是唯一的
```ini
[mysqld]
server-id = 2
```
在从服务器上,使用--skip-slave-start选项启动从数据库,这样不会立即启动从数据服务上的复制进程,方便我们对从数据库的服务进一步的配置.
```sql
mysqld_safe --skip-slave-start &
```
对从数据库做相应的设置,指定复制使用的用户,主数据库服务器的ip,端口以及开始执行复制的日志文件和位置
```sql
stop slave;
change master to
->master_host = '192.168.1.100',
->master_user = 'repl',
->master_password = '123',
->masrer_log_file = 'mysql-bin.000029',
->master_log_pos = 109;
start slave;
```
## 以下操作可以结合win系统主从复制操作查看
在从服务器上执行show slave starus \G命令查询从服务器的状态
也可以用show processlist \G命令查询从服务器的进程状态
## 主从复制测试
尝试在Master主机添加一条记录,查看Slave主机是否同步
- 简介
- 数据库
- 数据表
- 创建数据表
- 查看数据表结构
- 修改数据表
- 删除数据表
- 查询数据
- 表单查询
- 聚合查询
- 链接查询
- 子查询
- 联合查询
- 正则查询
- 数据管理
- 数据类型
- 添加数据
- 更新数据
- 删除数据
- 索引
- 索引分类
- 设计原则
- 添加索引
- 查看索引
- 删除索引
- 视图
- 视图操作
- 视图应用
- 事务
- 触发器
- 存储过程和函数
- 变量
- 异常处理
- 光标
- 流程控制
- 存储过程
- 自定义函数
- 内置函数
- 数学
- 字符串
- 日期和时间
- 条件判断
- 系统信息
- 加/解密
- 其他
- 用户管理
- 登录和退出
- 新建用户
- 删除用户
- 修改用户
- 找回ROOT密码
- 权限管理
- 备份恢复
- 备份数据
- 恢复数据
- 日志
- 二进制日志
- 错误日志
- 查询日志
- 慢查询日志
- 性能优化
- 优化查询语句
- 优化数据库结构
- 优化服务器
- 主从复制
- WIN系统主从复制
- Linux单机主从复制
- Linux联机主从复制
- 参数配置
- 日常管理和维护
- 切换主从服务器
- PHP操作
- 连接
- 创建数据库
- 插入数据
- 插入多条数据
- 预处理语句
- 查询数据
- 预处理语句
- 实战应用
- 分表