mysql主从配置
2016-05-20 10:26
661 查看
搭建环境:
master 192.168.127.131
slave 192.168.127.128
主从配置的前提:两个数据库的数据需要一模一样所以我们:
在主上面建立一个数据库 在这里我们用mysql备份一下
mysqldump db1 >123.sql (备份)
在主上面建立一个数据库db1需要登录数据库才可以执行这个: (create database db1;)
mysql db1 <123.sql (恢复到db1库)
同样的在从上面也执行此操作,保持两个数据库一模一样
主:
更改配置文件/etc/my.cnf
登入数据库然后:
grant replication slave on *.* to 'repl'@'192.168.75.128' identified by '123123'; (从的主机ip,并且建立一个同步的用户repl)
flush privileges; 刷新权限
flush tables with read lock; (锁住read)让数据不变)
show master status;(查看之前记得重启mysql服务)
从:配置文件更改:
server-id=2不要跟主一样)
重启mysqld服务
登陆从的mysql
slave stop; 停止从的服务
登入从的mysql写上如下命令:
change master to master_host='192.168.75.131', master_port=3306, master_user='repl', master_password='123123', master_log_file='mysql-bin.000018', master_log_pos=106; (粗体的这两个需要跟上面的主一致见图,每次重启一次Mysql服务,mysql-bin.000018这项就会增加1,ip是主的ip地址)
slave startshow slave status\G; 当出现下面这两个,则表示主从同步正确
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
然后登陆到主数据库上面 解锁
mysql -e "unlock tables" (不用登陆mysql执行解锁) unlock tables; (需要登陆mysql)
最后可以在主上面做一些操作,来测试了
测试: 主上清空db1库的db表 :use db1;
主上删除表db: drop table db;
主上看db表不存在了 show tables;
然后再去从上查看:show tables;
注意:不用在从上面做任何操作,否则主从会停止
MySQL主从机制比较脆弱,谨慎操作。如果重启master,务必要先把slave停掉,也就是说需要在slave上去执行 slave stop 命令,然后再去重启master的mysql服务,否则很有可能就会中断了。当然重启完后,还需要把slave给开启 slave start.
master 192.168.127.131
slave 192.168.127.128
主从配置的前提:两个数据库的数据需要一模一样所以我们:
在主上面建立一个数据库 在这里我们用mysql备份一下
mysqldump db1 >123.sql (备份)
在主上面建立一个数据库db1需要登录数据库才可以执行这个: (create database db1;)
mysql db1 <123.sql (恢复到db1库)
同样的在从上面也执行此操作,保持两个数据库一模一样
主:
更改配置文件/etc/my.cnf
[mysqld] server-id=1log-bin=mysql-bin (可以自定义名字) binlog-do-db=db1(指定要同步的数据库名字)
登入数据库然后:
grant replication slave on *.* to 'repl'@'192.168.75.128' identified by '123123'; (从的主机ip,并且建立一个同步的用户repl)
flush privileges; 刷新权限
flush tables with read lock; (锁住read)让数据不变)
show master status;(查看之前记得重启mysql服务)
从:配置文件更改:
server-id=2不要跟主一样)
重启mysqld服务
登陆从的mysql
slave stop; 停止从的服务
登入从的mysql写上如下命令:
change master to master_host='192.168.75.131', master_port=3306, master_user='repl', master_password='123123', master_log_file='mysql-bin.000018', master_log_pos=106; (粗体的这两个需要跟上面的主一致见图,每次重启一次Mysql服务,mysql-bin.000018这项就会增加1,ip是主的ip地址)
slave startshow slave status\G; 当出现下面这两个,则表示主从同步正确
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
然后登陆到主数据库上面 解锁
mysql -e "unlock tables" (不用登陆mysql执行解锁) unlock tables; (需要登陆mysql)
最后可以在主上面做一些操作,来测试了
测试: 主上清空db1库的db表 :use db1;
主上删除表db: drop table db;
主上看db表不存在了 show tables;
然后再去从上查看:show tables;
注意:不用在从上面做任何操作,否则主从会停止
MySQL主从机制比较脆弱,谨慎操作。如果重启master,务必要先把slave停掉,也就是说需要在slave上去执行 slave stop 命令,然后再去重启master的mysql服务,否则很有可能就会中断了。当然重启完后,还需要把slave给开启 slave start.
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复