本文整理自网络,侵删。
规划
master 192.168.56.2
slave 192.168.56.5
1、在主库上,设置一个复制使用的账户rep1,并授予REPLICATION SLAVE权限。
mysql> grant replication slave on *.* to 'rep1'@'192.168.56.2' identified by '123456'; Query OK, 0 rows affected (0.01 sec)
2、修改主数据库服务器的配置文件my.cnf,开启BINLOG,并设置server-id的值。这两个参数的修改需要重新启动数据库服务才可以生效。
vi /etc/my.cnf
[mysqld]
log-bin=/home/mysql/log/mysql-bin.log
server-id=1
[root@rhel6 ~]# service mysql restart Shutting down MySQL.. [ OK ] Starting MySQL. [ OK ]
3、在主库上,设置读锁定有效,这个操作是为了确保没有数据库操作,以便获得一个一致性的快照。
mysql> flush tables with read lock; Query OK, 0 rows affected (0.02 sec)
4、得到主库上当前的二进制日志名和偏移量值。这个操作的目的是为了从数据库启动以后,从这个点开始进行数据的恢复。
mysql> show master status; +-----------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +-----------------+----------+--------------+------------------+-------------------+ | mysqlbin.000021 | 120 | | | | +-----------------+----------+--------------+------------------+-------------------+ 1 row in set (0.03 sec)
5、现在主数据库服务器已经停止了更新操作,需要生成主数据库的备份,备份的方式有很多种,可以直接在操作系统下复制全部的数据文件到从数据库服务器上,也可以通过mysqldump导出数据或者使用ibbackup工具进行数据库的备份。如果主数据库的服务可以停止,那么直接复制数据文件应该是最快的生成快照的方法:
[root@rhel6 lib]# tar -zcvf mysql.tar.gz mysql mysql/ tar: mysql/mysql.sock: socket ignored mysql/mysqlbin.000019 mysql/test1/ mysql/test1/db.opt mysql/test1/pack.MYD mysql/test1/myisam2.frm mysql/test1/emp.ibd mysql/test1/mer_myisam.MRG mysql/test1/emp.frm mysql/test1/pri_t.TRG .... 传到从数据库 [root@rhel6 lib]# scp mysql.tar.gz root@192.168.56.5:/root root@192.168.56.5's password: mysql.tar.gz 100% 1402KB 1.4MB/s 00:00
6、主数据库备份完毕后可恢复写操作,剩下的只需要在从库上执行
mysql> unlock tables; Query OK, 0 rows affected (0.02 sec)
7、将主数据库的一致性备份恢复到从数据库上。如果是使用.tar.gz打包的文件包,只需要解开到相应的目录即可。
tar -zxvf mysql.tar.gz
8、修改从数据库的配置文件my.cnf,增加server-id参数。注意server-id的值必须是唯一的,不能和主数据库的配置相同,如果有多个从数据库服务器,每个从数据库服务器必须有自己唯一的server-id值。
vi my.cnf
[mysqld]
server-id=2
9、在从库上,使用--skip-slave-start选项启动数据库,这样不会立即启动从数据库服务上的复制进程,方便我们对从数据库的服务进行进一步的配置(可选)
mysqld_safe --skip-slave-start &
或者修改my.cnf,添加skip-slave-start参数,service mysql start
相关阅读 >>
mysql实现查询结果导出csv文件及导入csv文件到数据库操作_mysql
更多相关阅读请进入《mysql》频道 >>
数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。