mysql 删除同步账号_如何设置Mysql同步(Replication) 分享修改删除

------------------------------------------------------------------------------------------

MySQL提供了数据库的同步功能,这对我们实现数据库冗灾、备份、恢复、负载均衡等都是有极大帮助的。

一、准备服务器

由于MySQL不同版本之间(二进制日志)binlog格式可能会不一样,因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低,Master的版本肯定不能高于Slave版本

假设同步Master的主机名为rep1,Slave主机名为rep2,2个MySQL的basedir目录都是/usr/local/mysql,datadir都是/usr/local/mysql/var.

二、设置同步服务器

1、设置同步Master

每个同步服务器都必须设定一个唯一的编号,否则同步不能正常运行。接下来开始修改my.cnf,增加以下几行:

server-id = 1

log-bin

binlog-ignore-db=mysql

然后再Master上增加一个账号专门用于同步,如下:

mysql>grant replication slave on *.* to rep@rep2 identified by 'rep';

如果想要在Slave上有权限执行"Load table from master" 或者"Load data from master"语句的话,必须授予全局的FILE和SELECT权限:

mysql>GRANT FILE,SELECT,REPLICATION SLAVE on *.* TO rep@rep2 IDENTIFIED BY 'rep';

第三行表示不记录数据库mysql的更新日志,这就避免了Master上的权限设置等被同步到Slave上,如果对这方面没有限制,就可以不设置这个参数。

接下来备份Master上的数据,首先执行:

mysql>FLUSH TABLES WITH READ LOCK;

不要退出这个终端,否则锁失效;导出数据,可以直接打包压缩数据文件,也可以使用mysqldump工具来做,推荐前者,这样更为便捷简便。

root$cd /usr/local/mysql

root$ tar zcf var.tar.gz ./var

然后将这些数据拷贝到Slave服务器上,解开,设置好正确的权限及属主,之后,执行"UNLOCK TABLES"语句释放锁

2、设置Slave

修改my.cnf,增加:

server-id = 2

master-host = rep1

master-user = rep

master-password = rep

master-port = 3306

replicate-ignore-db = mysql #略过同步的数据库名,如果有多个,请设置多次

replicate-do-db = hrj #想要同步的数据库名,如果有多个,请设置多次

在Slave上检验一下是否能正确连接Master,并具备相应权限

root$mysql -hrep1 -urep -prep

mysql>SHOW GRANTS;

现在,启动Slave。登录Slave,查看一下同步状态:

mysql -hlocalhost -uroot

mysql>SHOW SLAVE STATUS\G

可以看到,Slave_IO_Running和Slave_SQL_Running两列为'Yes',表明Slave的I/O和SQL线程都在正常运行。

至此,同步设置成功。

三、同步FAQ

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值