实施mysql_mysql 主从实施步骤

复制实施步骤:

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-databases>slave.sql

导入:

mysql -uroot -p'1234567'

如果你的是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'

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文件获取信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值