mysql数据库正在复制中,但在主服务器上创建的用户没有在从服务器上复制
在主从复制中,我们使用mysql数据库在从服务器上复制少量数据库。 我在主服务器上创建了一个用户,不幸的是它没有在从服务器上复制 复制数据库:app1、app2、mysql 用户创建命令:mysql数据库正在复制中,但在主服务器上创建的用户没有在从服务器上复制,mysql,Mysql,在主从复制中,我们使用mysql数据库在从服务器上复制少量数据库。 我在主服务器上创建了一个用户,不幸的是它没有在从服务器上复制 复制数据库:app1、app2、mysql 用户创建命令: GRANT SELECT on *.* to 'user1'@'localhost' identified by 'user1'; GRANT SELECT on *.* to 'user1'@'%' identified by 'user1'; GRANT SELECT on *.* to 'user1
GRANT SELECT on *.* to 'user1'@'localhost' identified by 'user1';
GRANT SELECT on *.* to 'user1'@'%' identified by 'user1';
GRANT SELECT on *.* to 'user1'@'10.10.10.10' identified by 'user1';
已在主服务器上成功创建用户帐户,但未在从服务器上复制
如果mysql数据库处于复制状态,为什么会发生这种情况 嗯。我想在这里打个赌,说您可能使用基于语句的复制而不是基于行的复制,并且您的MySQL版本是5.1或更高版本 通过在从属服务器上运行以下SQL,可以判断正在运行的是哪种类型:
select variable_value
from information_schema.session_variables
where upper(variable_name) = 'BINLOG_FORMAT';
由于您已正确标识权限,因此只有在
然而,“抓住了!”这是一个选项。如果您使用的是基于语句的复制,则需要在运行授权之前将mysql数据库指定为默认数据库,因为:
此选项的效果取决于是基于语句还是基于
正在使用基于行的复制
基于语句的复制。告诉从属SQL线程限制
复制到默认数据库(即
通过使用选择)是db_名称
也就是说,试着跑步:
USE MYSQL;
GRANT SELECT on *.* to 'user1'@'localhost' identified by 'user1';
GRANT SELECT on *.* to 'user1'@'%' identified by 'user1';
GRANT SELECT on *.* to 'user1'@'10.10.10.10' identified by 'user1';
这可能有用。如果没有,请看另一个答案 在MySQL 5.7中,如果执行来自Tom Mac的查询,将出现以下错误: 错误3167(HY000):“信息模式.会话变量”功能被禁用;有关“显示兼容性”的信息,请参阅文档 您应该改为查询
performance\u schema
。运行以下命令:
SELECT variable_value FROM performance_schema.session_variables WHERE upper(variable_name) = 'BINLOG_FORMAT';
很高兴听到它起作用了。你能接受这个答案吗?请尽可能多地说明?实际上,最好的方法是:
显示变量,如“%BINLOG_FORMAT%”
;