• 在后端做主从备份;亦或是在大数据领域中,各类CDC同步(Canal / Flink CDC等),均会基于MYSQLbinlog来实现。
  • 因此,知道需要哪些权限?怎么查验去、怎么授权就很重要了。

感觉网上的文章没成体系地清楚,而今天工作上处理问题的过程中遇到了此疑问,且曾多次对此产生疑问,自然便有了这一篇,作为个人的Momo备忘笔记~

  • 不知道什么是数据领域CDC的朋友,可参见我刚参加工作时的这篇科普文章~

1 MYSQL的binlog特性,需要用户具备哪些权限?

MySQL Binlog权限需要3个权限 :

  • SELECT

    • 缺乏SELECT权限时,报错为

      • com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user 'canal'@'%' to database 'binlog'
    • 缺乏REPLICATION SLAVE权限时,报错为
      • java.io.IOException: Error When doing Register slave:ErrorPacket [errorNumber=1045, fieldCount=-1, message=Access denied for user 'canal'@'%'
    • 缺乏REPLICATION CLIENT权限时,报错为
      • com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation
  • REPLICATION SLAVE
  • REPLICATION CLIENT

Binlog为什么需要这些权限?

  • Select 权限代表允许从表中查看数据
  • Replication client 权限代表允许执行show master status,show slave status,show binary logs命令
  • Replication slave 权限代表允许slave主机通过此用户连接master以便建立主从 复制关系

1 查验:查验指定用户是否具有指定库/指定表的binlog权限

  • Step1 Check binlog status of mysql database server
-- https://github.com/alibaba/canal/wiki/AdminGuide
show variables like 'log_bin';
show variables like 'binlog_format';

  • Step2 查验指定用户是否具有指定库/指定表的binlog权限
SHOW GRANTS FOR '{userName}'@'%';

由图可见,这显然说明了该用户对图中这个库有binlog权限。

3 授予权限

GRANT
SELECT
, REPLICATION SLAVE
, REPLICATION CLIENT
ON *.*
TO '{username}'@'%' IDENTIFIED BY '{password}'; -- % 可替换为 指定的 host

X 参考与推荐文献

[数据库]MYSQL之授予/查验binlog权限的更多相关文章

  1. MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限

    1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Pas ...

  2. MySQL添加新用户、为用户创建数据库、为新用户分配权限

    登录MySQL [root@VM_0_2_33_centos /]#mysql -u root -p 添加新用户 允许本地 IP 访问 localhost, 127.0.0.1 mysql>'; ...

  3. 数据库——MySQL——权限管理

    关于MySQL的权限管理,可以理解为是MySQL运行你做的事情.比如MySQL允许你执行select操作那么你就不能用update操作.如果你让你在某台机器上连接MySQL,那么你就不能在这个机器以外 ...

  4. 查看MYSQL数据库中所有用户及拥有权限

    查看MYSQL数据库中所有用户 mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM m ...

  5. MySQL数据库备份还原(基于binlog的增量备份)

    MySQL数据库备份还原(基于binlog的增量备份) 一.简介 1.增量备份      增量备份 是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件.这就意味 ...

  6. 数据库权限分配(远程共享数据库)(mysql)

    1. 数据库远程权限 mysql -uroot -proot grant all privileges on formal.* to root@'192.168.3.40' identified by ...

  7. Python进阶----数据库的基础,关系型数据库与非关系型数据库(No SQL:not only sql),mysql数据库语言基础(增删改查,权限设定)

    day37 一丶Python进阶----数据库的基础,mysql数据库语言基础(增删改查,权限设定) 什么是数据库:    简称:DataBase ---->DB    数据库即存放数据的仓库, ...

  8. 数据库MySQL的基本操作

    1.MySQL数据库的安装: CentOS6上mysql服务端和客户端的安装和启动: #使用yum安装mysql数据库的服务端和客户端 yum install -y mysql mysql-serve ...

  9. MySQL中的账号与权限管理

    MySQL权限管理 权限系统的工作原理     MySQL权限系统通过下面两个阶段进行认证:     (1)对连接的用户进行身份认证,合法的用户通过认证.不合法的用户拒绝连接.     (2)对通过认 ...

  10. mysql 创建用户、设置权限

    MySQL创建用户与授权 一. 创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明: username:你将创建的用 ...

随机推荐

  1. 每日一道算法题——斐波那契数列Fibonacci

    题目: 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1),n≤39: 示例1 输入: 4 返回值: 3 代码: 方法一:递归 publi ...

  2. SQL Server 2014 启动时提示:无效的许可证数据,需要重新安装

    路径:C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE 双击运行DDConfigCA.exe后,Sql Server 20 ...

  3. c++中的构造函数,拷贝构造函数和赋值函数

    1.拷贝构造和赋值函数的区别: 1)拷贝构造函数是一个对象初始化一块内存区域,这块内存就是新对象的内存区,而赋值函数是对于一个已经被初始化的对象来进行赋值操作. 2)一般来说在数据成员包含指针对象的时 ...

  4. C++基础之字符输出 cout

    找了一些视频教程,课程的示例是输入一个三角形 要输入这样的图案,思路是可以进行拆解,分为两三角形分别输出,先输入一部分,比如,先输出上半部分三角形: 找到规律,可以发现,上面的三角形是7颗星,也就是说 ...

  5. HTML笔记(一) HTML相关概念

    一 HTML概述 1.HTML文档基本结构 先来看一个关于HTML的例子,里面包含了几个主要的HTML标签: <!DOCTYPE html> <html> <head&g ...

  6. ASP.NET Core Web API 接口限流

    前言 ASP.NET Core Web API 接口限流.限制接口并发数量,我也不知道自己写的有没有问题,抛砖引玉.欢迎来喷! 需求 写了一个接口,参数可以传多个人员,也可以传单个人员,时间范围限制最 ...

  7. (1)入门MasaFramework教程

    (1)入门MasaFramework教程 首先了解一下MasaFramework是什么 MasaFramework是一个基于.Net6.0的后端框架, 可以被用于开发Web应用程序.WPF项目.控制台 ...

  8. KCL v0.4.6 alpha 发布!- 更多 Kubernetes 工具集成,更好的 IDE 错误提示

    简介 KCL 团队很高兴地宣布 KCL v0.4.6-alpha.1 版本现在已经可用! 您可以在 KCL v0.4.6-alpha.1 发布页面 或者 KCL 官方网站 获得 KCL 二进制下载链接 ...

  9. ks.cfg 怎么读取光盘 (cdrom) 上的文件并执行对应的脚本

    ks.cfg 文件怎么实现读取光盘 (CDROM) 上的内容并执行自定义脚本我们知道 linux 系统安装过程中,要想实现自动化安装,一般都是利用 Kickstart 这个工具实现,最重要的就是其配置 ...

  10. Lodash中常用函数,不建议经常使用,容易让人变懒忘了原生函数

    1.N次循环 <script type="text/javascript"> console.log('------- javascript -------'); // ...