mysql主从复制
一、 配置主服务器
- 编辑my.cnf文件 默认位置一般在/etc下
在[mysqld]的下面加入下面代码:
1 | log-bin=mysql-bin |
2.重启mysql
1 | service mysqld restart |
3.连接mysql数据库
1 | mysql -u root -p |
4.在主服务器上创建用户并赋予”REPLICATION SLAVE”权限 x.x.x.x为 从属服务器ip
- 已授权的方式创建用户
1 | GRANT REPLICATION SLAVE |
5.执行以下命令锁定数据库以防止写入数据。
1 | mysql>FLUSH TABLES WITH READ LOCK; |
6.导出数据库备份文件
1 | mysqldump -u root -p --databases work --lock-tables=false > all.sql |
7.用scp命令传输数据库文件all.sql到从服务器
1 | scp all.sql root@192.168.199.118:/root |
- [注意:] scp命令使用时 主服务器和从服务器都要安装 openssh-clients
1 | yum install -y openssh-clients |
8.连接mysql数据库 进入mysql命令行查看master状态
1 | mysql> SHOW MASTER STATUS; |
9.解锁数据表
1 | mysql> UNLOCK TABLES; |
二、 配置从属数据库
1.导入主数据库数据表
1 | mysql -u root -p work < all.sql |
- [注释] < 导入 > 导出
2.编辑my.cnf,在[mysqld]下面加入
server-id=2
可以自己定义,保证唯一
3.登录mysql服务器,执行以下命令。
1 | mysql> CHANGE MASTER TO |
- [注意:] MASTER_HOST:主服务器的IP。
- MASTER_HOST:主服务器的IP。
- MASTER_USER:配置主服务器时建立的用户名
- MASTER_PASSWORD:用户密码
- MASTER_PORT:主服务器mysql端口,如果未曾修改,默认即可。
4.启动slave进程。
1 | START SLAVE;//开启SLAVE进程 |
- [注意]连接不上mysql数据库 有可能是防火墙的原因
1 | service iptables stop |