mysql 主从实施步骤
2015-08-24 22:27
696 查看
复制实施步骤: 1.确保主从服务器的版本兼容。从服务器至少与主服务器版本相同或更高。 2.确保主服务器上my.cnf文件的[mysqld]部分包括一个log-bin选项。该部分还应有一个server-id=Master_id选项,其中master_id必须为1到232–1之间的一个正整数值。如: [mysqld] basedir=/usr/local/mysql datadir=/data01/mysql socket=/data01/mysql/mysql.sock user=mysql slow_query_log=ON long_query_time=2 server-id=136 log-bin=/data01/mysqllog/binlog/mysql-bin binlog_format=MIXED max_binlog_size = 512M binlog_cache_size = 128K character-set-server=utf8 default-storage-engine=INNODB innodb_file_per_table=1 symbolic-links=0 max_connections=1024 log-error=/var/log/mysql/mysqld.log pid-file=/var/run/mysqld/mysqld.pid relay-log-purge=1 replicate-ignore-db = mysql replicate-ignore-db = information_schema skip-slave-start relay_log_info_repository = TABLE master_info_repository = TABLE relay_log_recovery = 1 sync_relay_log = 1 sync_master_info = 1 innodb_log_buffer_size=8M innodb_buffer_pool_size=1280M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES read_only 3.启动主服务器 注意:主服务器需要指定对哪些数据库记录二进制日志,这通过在启动主服务器时,加上 --binlog-do-db= db_name选项来实现。如果要记录多个数据库,要分别为每个数据库指定该选项。 目前主服务器上的启动脚本请使用/data/mysql/bin/startmysql。另外,主机开机后自动启动mysqld的脚本也已经修改。 4.在主服务器上为从服务器建立一个连接帐户,该帐户必须授予REPLICAITON SLAVE权限。 mysql> GRANT REPLICATION SLAVE ON *.* -> TO '帐号'@'从服务器IP' IDENTIFIED BY '密码'; grant replication slave on *.* to 'backup'@'%' identified by 'kjk7787czcb' with grant option; GRANT REPLICATION SLAVE,FILE ON *.* TO 'replication'@'10.1.1.%' IDENTIFIED BY '123456'; FLUSH PRIVILEGES; 5.备份数据库。 导出: mysqldump -uroot -p'1234567' -R --single-transaction --master-data=2 --all-database>slave.sql 导入: mysql -uroot -p'1234567' <slave.sql 如果你的是MYISAM或者既有MYISAM又有INNODB的话就在主服务器上使用如下命令导出服务器的一个快照: mysqldump -uroot -p --lock-tables --events --triggers --routines --flush-logs --master-data=2 --databases test > db.sql 只有INNODB的话就是用如下命令: mysqldump -uroot -p --single-transaction --events --triggers --routines --flush-logs --master-data=2 --databases test > db.sql --single-transaction 这个参数只对innodb适用。 --databases 后面跟除mysql以后的其他所有数据库的库名,我这里只有一个test库。 --master-data 参数会记录导出快照时候的mysql二进制日志位置,一会会用到。 7.在从服务器的my.cnf文件中添加下面的行: [mysqld] basedir=/usr/local/mysql datadir=/data01/mysql socket=/data01/mysql/mysql.sock user=mysql slow_query_log=ON long_query_time=2 server-id=136 log-bin=/data01/mysqllog/binlog/mysql-bin binlog_format=MIXED max_binlog_size = 512M binlog_cache_size = 128K character-set-server=utf8 default-storage-engine=INNODB innodb_file_per_table=1 symbolic-links=0 max_connections=1024 log-error=/var/log/mysql/mysqld.log pid-file=/var/run/mysqld/mysqld.pid relay-log-purge=1 replicate-ignore-db = mysql replicate-ignore-db = information_schema skip-slave-start relay_log_info_repository = TABLE master_info_repository = TABLE relay_log_recovery = 1 sync_relay_log = 1 sync_master_info = 1 innodb_log_buffer_size=8M innodb_buffer_pool_size=1280M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES read_only slave_id值必须为2到232–1之间的一个正整数值。ID值唯一的标识了复制群集中的主从服务器,因此它们必须各不相同。 8.使用--skip-slave-start选项启动从服务器启动从服务器,并导入备份数据库文件。 [root@zjzc02 ~]# mysql -uroot -p'xxx1'<slave.sql 9.在从服务器上执行下面的语句,以系统的实际值替换选项值: -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000009', MASTER_LOG_POS=7463227; change master to master_host='121.40.147.48',master_user='backup',master_password='xxxxxxx',master_log_file='mysql-bin.000009',master_log_pos=7463227; 10.启动从服务器线程 mysql> START SLAVE; 11.执行上述程序后,从服务器应连接主服务器,并补充自从快照以来发生的任何更新。如果没有正确更新,请检查复制线程状态以及data目录下的.err文件获取信息。
相关文章推荐
- 第四 mysql数据库和SQL语句
- MySQL数据库的常用命令语句记录——存储过程语句
- MySQL数据库的常用命令语句记录——数据库及表模式语句
- MySQL数据库的常用命令语句记录——数据操纵语句及函数
- MySQL数据库的常用命令语句记录——安全用户语句及函数
- [转][Navicat for MySQL系列]Navicat如何使用(二)
- Mysql常用函数汇总-经典实用
- MySQL多表查询
- 阿里巴巴开源项目: 基于mysql数据库binlog的增量订阅&消费
- Amazon EC2安装mysql多实例并配置主从复制
- Amazon EC2安装mysql多实例并配置主从复制
- Mysql-主主同步
- mysql锁研究系列四(事务在并发情况下避免超卖)
- mysql语句错误(更新中)
- Win10+VS2015+EF6.0+MySQL5.6+MVC环境部署和排错
- Mysql实现full join的替换方法
- mysql 通过bin-log恢复数据方法
- Mysql事务提交方式
- MYSQL 存储过程学习
- 每天进步一点点————MySQL锁