[数据库]MYSQL之授予/查验binlog权限

这篇具有很好参考价值的文章主要介绍了[数据库]MYSQL之授予/查验binlog权限。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

  • 不知道什么是数据领域CDC的朋友,可参见我刚参加工作,并进入大数据领域时的这篇科普文章~
  • [大数据]ETL之增量数据抽取(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以便建立主从 复制关系

2 查验:查验指定用户是否具有指定库/指定表的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';
[数据库]MYSQL之授予/查验binlog权限
  • Step2 查验指定用户是否具有指定库/指定表的binlog权限
SHOW GRANTS FOR '{userName}'@'%';
[数据库]MYSQL之授予/查验binlog权限

由图可见,这显然说明了该用户对图中这个库有binlog权限。文章来源地址https://www.toymoban.com/news/detail-428255.html

3 授予权限

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

X 参考与推荐文献

  • [大数据]ETL之增量数据抽取(CDC) - 博客园/千千寰宇 【推荐】
  • [数据库]MySQL之数据库管理篇 - 博客园/千千寰宇 【推荐】
  • [数据库/MYSQL]MYSQL开启Bin-Log - 博客园/千千寰宇 【推荐】
  • [数据库]MySQL之SQL查询 - 博客园/千千寰宇
  • MySQL Binlog 权限 - 博客园

Y 文末

  • 感觉有帮助的、有需要的伙伴,可点赞、收藏、转发~
  • 欢迎评论、沟通~

到了这里,关于[数据库]MYSQL之授予/查验binlog权限的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库——SQL(4)-DCL(管理用户、权限控制)

    目录 管理用户 1.查询用户 2.创建用户 3.修改用户密码 4.删除用户 示例 权限控制 1.查询权限 2.授予权限 3.撤销权限 示例 DCL总结 DCL DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问权限。 注意: 主机名可以使用通配符‘%’。 这类S

    2024年02月12日
    浏览(59)
  • Django后端开发——mysql数据库连接遇到的问题及解决

    stackflow帖子:https://stackoverflow.com/questions/39281594/error-1698-28000-access-denied-for-user-rootlocalhost 报错: 数据库拒绝root用户的连接 settings.py中关于数据库的配置: 可以看到root用户的密码为123456 但是在mysql数据库里面查看用户信息,root的密码为空 这样的不匹配导致连接失败 之前尝试

    2024年02月20日
    浏览(73)
  • Day04 03-MySQL数据库的DCL(用户|权限|视图)

    第十二章 DCL 12.1 DCL的作用 DCL语句主要用来做用户的创建、管理,权限的授予、撤销等操作的。 12.2 管理用户 创建、删除用户的操作,必须要使用root用户才可以完成! 12.3 权限管理 如果在授权远程登录的时候,出现如下问题: Unable to load authentication plugin ‘caching_sha2_password’

    2024年02月07日
    浏览(60)
  • 一百九十五、MySQL——MySQL数据库创建只读权限的账号(附流程截图)

    在团队开发过程中,为了实现数据共享以及避免其他团队修改库表数据,需要提供数据库只读权限的账号,因此以MySQL数据库为例,创建MySQL数据库只读权限的账号 以用户名readyonly   密码hurys@123为例 mysql create user \\\'readyonly\\\'@\\\'%\\\' IDENTIFIED BY \\\'hurys@123\\\'; 注意:如果创建用户名时设置

    2024年02月08日
    浏览(53)
  • 数据库清除binlog遇坑

    当数据库开启binlog之后      当数据库开启binlog之后,随着时间的增加,日志也会占据大量的内存,当然你也可以设置bin_log的过期时长      这里就说说我忍受不了数据库binlog日志太多选择手动清除的一件坑事  我试着这个样清除 但是执行之后,很长一段时间不见任何效果

    2024年02月16日
    浏览(43)
  • 【Mysql数据库从0到1】-入门基础篇--用户与权限管理

    Mysql 用户分为root用户和普通用户,其中root用户是数据库超级管理员,拥有所有权限(创建、删除、修改密码、授权等管理权限),普通用户只拥有被授予的权限。 Mysql数据库的安全性通过账户管理来保障。 1.1 🍃 Mysql服务器登录 🍀 简单使用 🍀 复杂使用 1.2 🍃 用户创建

    2024年02月07日
    浏览(69)
  • web开发中,简单的案例说明前端页面和后端以及mysql数据库的交互过程

            首先这是一个基于 web开发 的稿子,作者也是转java20天左右,以前也一直迷惑起那段页面是如何和后端进行交互,数据提交提交到了哪里?后端开发如何获取到前端提交的数据呢?后端数据提交到数据库中应该如何处理,接下来通过一个简单的例子,登录案例 (实

    2024年02月03日
    浏览(56)
  • MySQL授予用户权限

    show privileges; 给用户授权的方式有 2 种,分别是通过把角色赋予用户给用户授权(mysql8.0的特性) 和 直接给用户授权。用户是数据库的使用者,我们可以通过给用户授予访问数据库中资源的权限,来控制用户对数据库的访问,消除安全隐患。 授权命令:该权限如果发现没有该

    2024年02月13日
    浏览(38)
  • mysql授予用户远程访问权限

    MySQL 是一个流行的关系型数据库管理系统,用户可以使用 MySQL 在本地或远程服务器上存储和检索数据。在默认情况下,MySQL 数据库仅允许在本地主机上进行访问。如果您需要远程连接到 MySQL 数据库,您需要授予用户远程访问权限,并刷新权限使其生效。下面是授予 MySQL 用户

    2024年02月11日
    浏览(46)
  • mysql创建用户以及给用户授予权限

    说明: username——你将创建的用户名, password——该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器. 进入到mysql的客户端,在下图中可以看到,创建了一个用户名为 xaiodong 并且密码为 123456 的用户 这个时候创建的改用户只能看见一个库, information_schem

    2024年02月07日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包