解決MySQL Replication出錯一例

日期:2008-07-09  作者:喜騰小二  來源:PHPChina


作/譯者:葉金榮(Email: ),來源:http://imysql.cn,轉載請注明作/譯者和出處,並且不能用於商業用途,違者必究。

os: redhat as4
master: MySQL 4.0.23
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上,執行以下陳述式檢視授權權:

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'

已經授予了 REPLICAION SLAVE 授權權了,怎麼還會報這個錯呢?
透過檢視手冊和源碼,才知道slave需要執行一個陳述式來更新slave清單:

SHOW SLAVE HOSTS;

而執行這個陳述式則需要 REPLICAION CLIENT 授權權,因此才會報錯。因此,只要重新給 'rep' 帳號加上 REPLICAION CLIENT 授權權就可以了。
另外,在 MySQL 4.0/4.1 等老版本中似乎不存在這樣的問題,因為在這些版本中 REPLICAION CLIENT 授權權沒有被用到。

<<<返回技術中心

技術文章

站內新聞