我需要为每个数据库创建一个具有REPLICATION SLAVE权限的用户。当我使用命令时:
REPLICATION SLAVE
GRANT REPLICATION SLAVE ON `mydb`.* TO 'user';
字符串错误显示:错误使用DB GRANT和GLOBAL PRIVILEGES是否有一种方法可以只将REPLICATION SLAVE权限授予数据库?
wqsoz72f1#
不能将GRANT REPLICATION SLAVE限制为仅一个数据库,因此必须使用
GRANT REPLICATION SLAVE
GRANT REPLICATION SLAVE ON *.* TO 'user'@'host'
但您可以限制复制本身:
--replicate-do-db=db_name
因为后者是为从服务器而设的,所以它很容易被搞砸。所以你想在主服务器上执行它,使用以下两种方法之一:[mysqld]个
[mysqld]
binlog-do-db=replicated_db_name
对于要复制的数据库,
binlog-ignore-db=ignored_db_name
对于您不希望复制的数据库,
使用最后两个命令排除服务器上的数据库,其效果是二进制日志文件中不会包含任何有关这些数据库的语句,这将危及备份过程。
lnvxswe22#
您应该对所有数据库(*.*)中的所有表授予REPLICATION SLAVE,如下所示:
*.*
GRANT REPLICATION SLAVE ON *.* TO 'user';
字符串实际上,医生在下面说:因为任何静态全局特权都被认为是所有数据库的特权,...而且,您不能给予REPLICATION SLAVE特权,因为存在错误,如下所示,在所有数据库(*.person)中仅对一个表(例如person)授予REPLICATION SLAVE特权:
*.person
person
GRANT REPLICATION SLAVE ON *.person TO 'user';
型因此,我们需要对所有数据库(*.*)中的所有表授予静态全局权限,如REPLICATION SLAVE,PROCESS,FILE等,如下图所示,否则会出现错误:
GRANT [STATIC_GLOBAL_PRIVILEGES] ON *.* TO <USER>;
型
uyhoqukh3#
你可以试试这个
$ 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';
字符串
3条答案
按热度按时间wqsoz72f1#
不能将
GRANT REPLICATION SLAVE
限制为仅一个数据库,因此必须使用GRANT REPLICATION SLAVE ON *.* TO 'user'@'host'
但您可以限制复制本身:
--replicate-do-db=db_name
编辑:
因为后者是为从服务器而设的,所以它很容易被搞砸。所以你想在主服务器上执行它,使用以下两种方法之一:
[mysqld]
个binlog-do-db=replicated_db_name
对于要复制的数据库,
或
binlog-ignore-db=ignored_db_name
对于您不希望复制的数据库,
警告:
使用最后两个命令排除服务器上的数据库,其效果是二进制日志文件中不会包含任何有关这些数据库的语句,这将危及备份过程。
lnvxswe22#
您应该对所有数据库(
*.*
)中的所有表授予REPLICATION SLAVE,如下所示:字符串
实际上,医生在下面说:
因为任何静态全局特权都被认为是所有数据库的特权,...
而且,您不能给予
REPLICATION SLAVE
特权,因为存在错误,如下所示,在所有数据库(*.person
)中仅对一个表(例如person
)授予REPLICATION SLAVE
特权:型
因此,我们需要对所有数据库(
*.*
)中的所有表授予静态全局权限,如REPLICATION SLAVE,PROCESS,FILE等,如下图所示,否则会出现错误:型
uyhoqukh3#
你可以试试这个
字符串