如何向 mysql 中的数据库授予复制权限?

How to grant replication privilege to a database in mysql?

我需要为每个数据库创建一个具有复制从属权限的用户吗?

当我使用 de 命令 "GRANT replication slave ON mydb.* TO 'user';" 时,显示错误 "Incorrect usage of DB GRANT and GLOBAL PRIVILEGES"。

有没有办法只对一个数据库授予复制权限?

您可以试试这个。

$ mysql -h 10.20.30.1 -u user -p
mysql> CREATE USER 'repl_slave'@'10.20.30.%' IDENTIFIED BY 'Passw0rdf0rRepl';
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl_slave'@'10.20.30.1';

您不能将 GRANT REPLICATION SLAVE 限制为只有一个数据库,因此您必须使用

GRANT REPLICATION SLAVE ON *.* TO 'user'@'host'

但是您可以限制复制本身:

  • 在你的配置文件(my.ini)中输入以下命令 主人奴隶:

--replicate-do-db=db_name

编辑:

由于后者是针对从服务器的,所以很容易被搞砸。因此,您需要在主服务器上使用 :
[mysqld]

binlog-do-db=replicated_db_name

对于您要复制的数据库

binlog-ignore-db=ignored_db_name

对于您不想复制的数据库

  • 对于这两个命令:要指定多个数据库,请使用此命令 多次选择。

警告:

使用最后两个命令排除服务器上的数据库,其效果是二进制日志文件中不会包含关于它们的任何语句,这会危及备份过程。