专注各种脚本编程
Baidu
加入收藏夹
本站内容有下面分类知识,欢迎您的到来^_^
shell相关:指令篇 基础篇 脚本欣赏 编程实例 shell问问 shell视频教程 技巧篇 水平测试 E文资料 vi编辑器 高级Bash脚本编程指南
其他:mysql perl c语言 oracle
当前位置:| 主页>mysql>

解决MySQL Replication出错实例

百度收藏 QQ搜藏

来源:http://imysql.cn
实验环境如下:
操作系统: redhat as4
Mysql的master端版本: MySQL 4.0.23
Mysql的slave端版本: MySQL 5.0.37

我们在slave端的日志中发现如下报错信息:

060807 11:40:17 [ERROR] While trying to obtain the list of
slaves from the master 'xxx.xxx.xxx:3306', user 'rep' got the
 following error: 'Access denied. You need the REPLICATION SLAVE
 privilege for this operation'

再到master上看看,执行以下sql语句来查看权限:

mysql>SHOW GRANT FOR 'rep'@'192.168.0.2'\G
*************************** 1. row ***************************
Grants for rep@192.168.0.2: GRANT SELECT, REPLICATION SLAVE ON
 *.* TO 'rep'@'192.168.0.2' IDENTIFIED BY PASSWORD 'xxx'

不是吧,"rep"用户已经授予了 REPLICAION SLAVE 权限了,怎么还会报错呢?
于是通过查看mysql手册和源码,才知道slave是需要执行一个语句来更新slave列表:

mysql>SHOW SLAVE HOSTS;

而执行这个sql语句则需要有 REPLICAION CLIENT 权限,所以才会报错。因此,只要重新给 'rep' 帐号加上 REPLICAION CLIENT 权限就可以了。

mysql>GRANT SELECT, REPLICATION SLAVE,REPLICAION CLIENT ON *.* TO rep@rep2 IDENTIFIED BY 'rep';

值得注意的是,在 MySQL的4.0/4.1等老版本中似乎不存在这样的问题,因为在这些版本中没有用到 REPLICAION CLIENT 权限。

上一篇:解决mysql的log_bin.index not found启动报错问题 下一篇:设置同步Master-设置MySQL同步(Replication)

power by soyo123 2007-2008