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 的更多使用場景。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/710648.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/710648.shtml
英文地址,請注明出處:http://en.pswp.cn/news/710648.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于springboot+vue的在線考試與學習交流平臺

博主主頁:貓頭鷹源碼 博主簡介:Java領域優質創作者、CSDN博客專家、阿里云專家博主、公司架構師、全網粉絲5萬、專注Java技術領域和畢業設計項目實戰,歡迎高校老師\講師\同行交流合作 ?主要內容:畢業設計(Javaweb項目|小程序|Pyt…

中小型水庫安全監測運營解決方案,筑牢水庫安全防線

我國水庫大壩具有“六多”的特點。第一,總量多。我國現有水庫9.8萬座,是世界上水庫大壩最多的國家。第二,小水庫多。我國現有水庫中95%的水庫是小型水庫。第三,病險水庫多。 目前,在我國水庫管理中,部分地方…

供應鏈|NUS覃含章MS論文解讀:數據驅動下聯合定價和庫存控制的近似方法 (二)

編者按 本次解讀的文章發表于 Management Science,原文信息:Hanzhang Qin, David Simchi-Levi, Li Wang (2022) Data-Driven Approximation Schemes for Joint Pricing and Inventory Control Models. https://doi.org/10.1287/mnsc.2021.4212 文章在數…

深度神經網絡聯結主義的本質

一、介紹 在新興的人工智能 (AI) 領域,深度神經網絡 (DNN) 是一項里程碑式的成就,突破了機器學習、模式識別和認知模擬的界限。這一技術奇跡的核心是一個與認知科學本身一樣古老的思想:聯結主義。本文深入探討了聯結主義的基本原理&#xff0…

c# this關鍵字

c#this關鍵字 1. 代表當前類的對象 class Father {public int Age { get; set; }public string Name { get; set; }public Father(int age, string name){this.Age age;this.Name name;}public void Test(){Console.WriteLine($"name:{this.Name },age:{this.Age }&qu…

實例:NX二次開發抽取平面以及標準柱面中心線

一、概述 最近體驗許多外掛,包括胡波外掛、星空外掛及模圣等都有抽取面的中心線,由于剛剛學習,我嘗試看看能不能做出來,本博客代碼沒有封裝函數,代碼有待改進,但基本可以實現相應的功能。 二、案例實現的功…

【web APIs】3、(學習筆記)有案例!

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、概念其他事件頁面加載事件元素滾動事件頁面尺寸事件 元素尺寸與位置 二、案例舉例電梯導航 前言 掌握阻止事件冒泡的方法理解事件委托的實現原理 一、概念…

SpringCloud Alibaba(保姆級入門及操作)

第一章 微服務概念 1.0 科普一些術語 科普一下項目開發過程中常出現的術語,方便后續內容的理解。 **服務器:**分軟件與硬件,軟件:類型tomcat這種跑項目的程序, 硬件:用來部署項目的電腦(一般性能比個人電腦好) **服務:**操作系統上術語:一個程序,開發中術語:一個…

數學建模【分類模型】

一、分類模型簡介 本篇將介紹分類模型。對于二分類模型,我們將介紹邏輯回歸(logistic regression)和Fisher線性判別分析兩種分類算法;對于多分類模型,我們將簡單介紹SPSS中的多分類線性判別分析和多分類邏輯回歸。 分…

Java面試題之并發

并發 1.并發編程的優缺點?2.并發編程三要素?3.什么叫指令重排?4.如何避免指令重排?5.并發?并行?串行?6.線程和進程的概念和區別?7.什么是上下文切換?8.守護線程和用戶線程…

<網絡安全>《60 概念講解<第七課 網絡模型OSI對應協議>》

1 OSI模型 OSI模型(Open Systems Interconnection Model)是一個由國際標準化組織(ISO)提出的概念模型,用于描述和標準化電信或計算系統的通信功能,以實現不同通信系統之間的互操作性。該模型將通信系統劃分…

【k8s管理--Helm包管理器】

1、Helm的概念 Kubernetes包管器 Helm是查找、分享和使用軟件構件Kubernetes的最優方式。 Helm管理名為chart的Kubernetes包的工具。Helm可以做以下的事情: 從頭開始創建新的chat將chart打包成歸檔tgz)文件與存儲chat的倉庫進行交互在現有的Kubernetes集群中安裝和…

【Android】View 的滑動

View 的滑動是 Android 實現自定義控件的基礎,同時在開發中我們也難免會遇到 View 的滑動處理。其實不管是哪種滑動方式,其基本思想都是類似的:當點擊事件傳到 View 時,系統記下觸摸點的坐標,手指移動時系統記下移動后…

【AI+應用】怎么快速制作一個類chatGPT套殼網站

最近有人問我, 看了我之前寫的一篇文章 [人工智能] AI浪潮下Sora對于普通人的機會 , 怎么做一個類chatGPT的套殼網站,是從0開始做么。 對于普通人來說,萬事不懂先AI, AI找不到答案搜索google或百度。對于程序員來說…

C# 獲取類型 Type.GetType()

背景 C#是強類型語言,任何對象都有Type,有時候需要使用Type來進行反射、序列化、篩選等,獲取Type有Type.GetType, typeof(),object.GetType() 等方法,本文重點介紹Type.GetType()。 系統類型/本程序集內的類型 對于系…

有哪些視頻媒體?邀請視頻媒體報道活動的好處

傳媒如春雨,潤物細無聲,大家好,我是51媒體網胡老師。 視頻媒體在當今的媒體生態中占據了重要的地位。以下是一些主要的視頻媒體類型: 電視臺:如中央電視臺、各省級衛視臺、地方電視臺等,他們擁有專業的視…

學習linux從0到初級工程師-3

一、LNMP 1.1 搭建LNMP LNMP:LinuxNginxMysqlPHP LNMP優勢: 1.web服務器一種,Nginx處理靜態文件、索引文件,自動索引的效率非常高; 2.作為代理服務器,Nginx可以實現無緩存的反向代理加速,提高網站運行…

探索Redis 6.0的新特性

Redis(Remote Dictionary Server)是一個開源的內存中數據結構存儲系統,通常被用作緩存、消息隊列和實時數據處理等場景。它的簡單性、高性能以及豐富的數據結構支持使其成為了眾多開發者和企業的首選。在Redis 6.0版本中,引入了一…

Vue3報錯Promise executor functions should not be async.

解決方法 加注釋。。。// eslint-disable-next-line no-async-promise-executor // eslint-disable-next-line no-async-promise-executor new Promise<boolean>(async (resolve, reject) > {... }),

Ubuntu綁定USB接口到固定端口

綁定端口 打開終端&#xff0c;輸入以下命令查看USB端口信息&#xff1a; udevadm info -a -n /dev/ttyUSB0執行后&#xff0c;可以看到部分輸出如下: 找到第一個&#xff0c;a-b:c格式的KERNELS&#xff0c;記住這個值&#xff0c;后面會用到。 linlin-B660M-D2H-DDR4:~$ u…