如何向 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
对于您不想复制的数据库
- 对于这两个命令:要指定多个数据库,请使用此命令
多次选择。
警告:
使用最后两个命令排除服务器上的数据库,其效果是二进制日志文件中不会包含关于它们的任何语句,这会危及备份过程。
我需要为每个数据库创建一个具有复制从属权限的用户吗?
当我使用 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
对于您不想复制的数据库
- 对于这两个命令:要指定多个数据库,请使用此命令 多次选择。
警告:
使用最后两个命令排除服务器上的数据库,其效果是二进制日志文件中不会包含关于它们的任何语句,这会危及备份过程。