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

Posted

技术标签:

【中文标题】如何在mysql中授予数据库复制权限?【英文标题】:How to grant replication privilege to a database in mysql? 【发布时间】:2017-01-31 15:11:37 【问题描述】:

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

当我使用 de 命令“GRANT replication slave ON mydb.* TO 'user';”显示错误“DB GRANT and GLOBAL PRIVILEGES 的使用不正确”。

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

【问题讨论】:

这可能是一个重复的问题。请在[这里]查看答案:***.com/questions/13552206/… 我认为这不是一个重复的问题。在您的回答中,我的问题没有解决方案 【参考方案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

对于您不想被复制的数据库

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

警告:

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

【讨论】:

一个不太可行的选项是通过在 [mysqld] 选项组中使用 replicate-ignore-db=dbname 来排除从属上的一些数据库,它可以采用多个数据库名称,但任何可以访问配置文件的人奴隶可以改变它。【参考方案2】:

你可以试试这个。

$ 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';

【讨论】:

以上是关于如何在mysql中授予数据库复制权限?的主要内容,如果未能解决你的问题,请参考以下文章

MySQL主从复制配置遇到的部分问题

如何为我的网站数据库中的 mysql 数据库表授予超级权限

如何使用NSIS授予安装目录的权限?

如何在 oracle 中以与现有帐户相同的权限复制模式?

对两个不同用户的 BigQuery 数据访问权限,无需复制数据

无法复制文件,即使在 C# 中授予了 FileIOPermission