1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > mysql修改主从复制id_mysql主从复制设置

mysql修改主从复制id_mysql主从复制设置

时间:2020-10-17 13:38:59

相关推荐

mysql修改主从复制id_mysql主从复制设置

三、mysql复制

master和每个slave是通过unique ID来区分的(server-id选项),而且每个slave需要配置好master的主机名,日志文件名,和日志位置

这些可以通过在slave会话中使用命令CHANGE MASTER TO ,存储在slave的master.info文件中

--begin

1.在master上启用二进制日志,并且指定唯一的server ID,复制服务器群必须使用唯一的server ID来标识,在1~2^32 -1

为了innodb事务处理的最大程度的一致性、持久性,需在master配置innodb_flush_log_at_trx_commit=1和sync_binlog=1

master上不应该开启skip-networking选项,开启的话slave将没法与master通信

2.修改slave配置的server-id,该id不能与master冲突,设置之后需要重启,如果设置多个slave则每一个server-id必须唯一

3.创建拥有REPLICATION SLAVE权限的帐户给slave复制用

create user 'rep102'@'192.168.1.%' identified by '123456';

grant replication slave on *.* to 'rep102'@'192.168.1.%'; //ip为通配符确定的

4.指定slave从某个节点开始复制

在一个master会话中刷新所有表和堵塞的写操作:FLUSH TABLES WITH READ LOCK;

在另一个master会话中,使用SHOW MASTER STATUS来看当前的binlog文件名及位置,file 和 position mysql-bin.000046 344

1)使用mysqldump为当前master创建快照

先在一个会话中使用 :FLUSH TABLES WITH READ LOCK;

再在另一个会话中dump:mysqldump --all-databases --lock-all-tables >dbdump.db

再解锁: UNLOCK TABLES;

2)使用冷备份:copy文件

一致性最高时需要shutdown

mysqladmin shutdown

tar cf /tmp/db.tar ./data

rsync --recursive ./data /tmp/dbdata

restart

5.设置master-slave:

1)新的master-slave,没有任何数据

拿到binlog文件和位置后,执行CHANGE MASTER TO

2)在现在数据基础上设置主从

在master创建帐号给从库使用

配置主库server-id

创建主库快照

得到主库的binlog位置

更新从库配置

为从库加载数据:mysqldump的(以--skip-slave-start参数启动,导入数据mysql < db.dump),冷备的(tar xvf dump.tar,使用--skip-slave-start启动)

使用主库的binlog位置配置从库,使用正确的帐号

开启slave进程

当slave开始复制时可在数据目录下发现一个master.info文件和一个relay-log.info文件

3)在一个现在的主从系列中添加从库

复制已有的从库:mysqladmin shutdown; 复制数据文件到新的slave;

可能会报relay-log错误,使用与已有slave一样的--relay-log避免错误,如果它没指定则使用exist_slave_hostname-relay-bin

如果上面方法不行则把已有的slave的relay log索引文件拷到新slave,设置--relay-log-index选项与原slave相同,默认为exist_slave_hotname-relay-bin.index

如果新的slave目录里没有,将已有slave的master.info和relay-log.info文件拷进去,这两个文件包含目前同步的master binlog位置和slave的延迟

开启已有的slave

为新的slave分配server-id并启动它,新的slave将使用master.info文件开始同步

4)在slave上设置master的配置

此处需要主库的防火墙开放3306端口:

sudo /sbin/iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

sudo /sbin/iptables -A OUTPUT -p tcp --dport 3306 -j ACCEPT

sudo /sbin/service iptables save

sudo /sbin/service iptables restart

sudo /sbin/iptables -L -n 查看3306端口已打开

CHANGE MASTER TO

MASTER_HOST='192.168.1.101',

MASTER_USER='rep',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000046',

MASTER_LOG_POS=344;

start slave;

show slave status;

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.1.101

Master_User: rep

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000048

Read_Master_Log_Pos: 2332

Relay_Log_File: web102-relay-bin.000005

Relay_Log_Pos: 2478

Relay_Master_Log_File: mysql-bin.000048

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 2332

Relay_Log_Space: 3528

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

Replicate_Ignore_Server_Ids:

Master_Server_Id: 101

看到这个状态就知道,主从复制成功搭建,接下来就是看同步效果咯

四、mysql用户权限

1.创建帐户(使用grant语句或直接操作授权表)

create 'user'@'host' idetified by 'password';

grant all privileges on *.* to 'user'@'host' identified by 'password' with grant option;

GRANT USAGE ON *.* TO 'francis'@'localhost' WITH MAX_QUERIES_PER_HOUR 100; //限制查询

2.修改密码

mysqladmin -u user_name -h host_name password "newpwd"

set password for 'user'@'%' = password('newpwd');

root可以直接更新密码:set password = password('newpwd');

grant usage on *.* to 'user'@'%' identified by 'newpwd'; //指定某个帐户的密码而不影响帐户当前的权限

3.flush previliges;

posted on

-09-16 22:42

X海阳

阅读(130)

评论(0)

编辑

收藏

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。