当前位置: 首页 > news >正文

MySQL 用户账号迁移

文章目录

    • 前言
    • 1. 工具安装
      • 1.1 下载安装包
      • 1.2 编译安装
    • 2. 用户迁移
    • 后记

前言

有一个典型的使用场景,就是 RDS 下云大多数都是通过 DTS 进行数据传输的,用户是不会同步到自建数据库的。需要运维人员在自建数据库重新创建用户,如果用户数量很多的话,那么手动创建并不现实。那么就是 pt-show-grants 发挥作用的时候了。

1. 工具安装

pt-show-grants 包含在 Percona Toolkit 工具集中,下面是安装工具集的方法,后续也会介绍更多工具的使用场景和方法。

1.1 下载安装包

从 https://www.percona.com/downloads 地址内,下载 Percona tookit 的安装包。

在这里插入图片描述

1.2 编译安装

PT 工具集是基于 perl 语言开发,所以使用前需要安装相关依赖包。

yum install -y perl perl-IO-Socket-SSL perl-DBD-MySQL perl-Time-HiRes perl-Digest-MD5 perl-ExtUtils-MakeMaker
tar -zxvf percona-toolkit-3.3.1_x86_64.tar.gz
cd percona-toolkit-3.3.1
perl Makefile.PL
make
make install

这几步执行完后,PT 工具集就算安装完成了。

2. 用户迁移

该工具用户打印 MySQL 用户创建语句,有一个典型的使用场景,就是 RDS 下云大多数都是通过 DTS 进行数据传输的,用户是不会同步到自建数据库的。需要运维人员在自建数据库重新创建用户,如果用户数量很多的话,那么手动创建并不现实。那么就是 pt-show-grants 发挥作用的时候了。

导出除 MySQL 预留用户 mysql.sys 和 mysql.session 之外的所有用户。

pt-show-grants h=127.0.0.1,P=3306,u=root,p=abc123 --ignore 'mysql.sys'@'localhost','mysql.session'@'localhost'

输出结果:

-- Grants dumped by pt-show-grants
-- Dumped from server 127.0.0.1 via TCP/IP, MySQL 5.7.33-log at 2024-02-29 11:44:25
-- Grants for 'bing'@'%'
CREATE USER IF NOT EXISTS 'bing'@'%';
ALTER USER 'bing'@'%' IDENTIFIED WITH 'mysql_native_password' AS '*6691484EA6B50DDDE1926A220DA01FA9E575C18A' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK;
GRANT ALL PRIVILEGES ON *.* TO 'bing'@'%';-- Grants for 'root'@'localhost'
CREATE USER IF NOT EXISTS 'root'@'localhost';
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' AS '*6691484EA6B50DDDE1926A220DA01FA9E575C18A' REQUIRE NONE PASSWORD EXPIRE DEFAULT ACCOUNT UNLOCK;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION;

拿着用户创建 SQL 到目标端执行一遍,就完成了用户账号迁移。

常用参数:

  • –drop:在 create user 之前打印 DROP USER 操作。
  • –flush:在末尾打印 FLUSH PRIVILEGES 操作。
  • –revoke:在 create user 之前打印 REVOKE 操作。
  • –only:只输出指定用户的创建语句,例如 --only ‘bing’@‘%’
  • –ignore:忽略输出指定用户的创建语句。

后记

本篇文章介绍如何使用 pt-show-grants 迁移 MySQL 用户账号的方法,后续还会介绍 Percona tookit 的更多使用场景。

相关文章:

  • 小白的matlab简单应用
  • 【打工日常】使用docker部署在线PDF工具
  • 基于MUSIC算法的六阵元圆阵DOA估计matlab仿真
  • 《TCP/IP详解 卷一》第9章 广播和组播
  • 【Linux C | 网络编程】套接字选项、getsockopt、setsockopt详解及C语言例子
  • MYSQL高级_目录
  • Windows的Docker-Desktop安装与问题总结
  • 2. 获取帮助(Getting Help)
  • 【JavaScript 漫游】【026】进度事件简记
  • Sora - 探索AI视频模型的无限可能
  • excel导出标准化
  • html2canvas 将DOM节点转成图片
  • sql-labs第46关(order by盲注脚本)
  • golang 函数式编程库samber/mo使用: IO
  • C++利用汇编挖掘编程语言的本质..
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Android开源项目规范总结
  • es6(二):字符串的扩展
  • Java,console输出实时的转向GUI textbox
  • laravel with 查询列表限制条数
  • pdf文件如何在线转换为jpg图片
  • Redis字符串类型内部编码剖析
  • Terraform入门 - 3. 变更基础设施
  • tweak 支持第三方库
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 基于游标的分页接口实现
  • 前端临床手札——文件上传
  • 嵌入式文件系统
  • 悄悄地说一个bug
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 数据科学 第 3 章 11 字符串处理
  • Java总结 - String - 这篇请使劲喷我
  • 带你开发类似Pokemon Go的AR游戏
  • 数据可视化之下发图实践
  • (1)虚拟机的安装与使用,linux系统安装
  • (11)工业界推荐系统-小红书推荐场景及内部实践【粗排三塔模型】
  • (附源码)计算机毕业设计大学生兼职系统
  • (区间dp) (经典例题) 石子合并
  • (四)鸿鹄云架构一服务注册中心
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET 8.0 中有哪些新的变化?
  • .NET MVC第三章、三种传值方式
  • .net 后台导出excel ,word
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .net访问oracle数据库性能问题
  • .NET开源项目介绍及资源推荐:数据持久层
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • @hook扩展分析
  • [BZOJ] 3262: 陌上花开
  • [bzoj1324]Exca王者之剑_最小割
  • [C/C++]数据结构 堆的详解
  • [C++]——带你学习类和对象