如何迁移自建库用户密码和权限到RDS MySQL/PolarDB MySQL

本文涉及的产品
RDS AI 助手,专业版
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
简介: 如何迁移自建库用户密码和权限到RDS MySQL/PolarDB MySQL

问题描述

如何迁移自建库用户密码和权限到RDS MySQL/PolarDB MySQL


回答

  • 通过以下SQL在原库确认mysql.user表中需要迁移的用户(不含aurora, root, replicator),是否都是用的mysql_native_password认证方式:

select distinct user, plugin from mysql.user;

  • 确认目标的库表都创建完成


1、生成创建用户的脚本create_user.sql

mysql  -D mysql -h ${src_host} -P ${src_port}  -u ${src_admin_user}  --password=${src_pass} --skip-column-names -A -e "SELECT CONCAT('CREATE USER \'', user, '\'@\'', host, '\' IDENTIFIED WITH \'mysql_native_password\' AS \'', password,'\';') FROM mysql.user WHERE user NOT IN  ('root','aurora','replicator','') and plugin='mysql_native_password';" > create_user.sql

2、生成赋权脚本grant_user.sql

mysql  -h ${src_host} -P ${src_port}  -u ${src_admin_user}  --password=${src_pass}   --skip-column-names -A -e"SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user NOT IN ('root','aurora','replicator','')" | mysql -D mysql -h ${src_host} -P ${src_port}  -u ${src_admin_user}  --password=${src_pass}  --skip-column-names -A | sed 's/IDENTIFIED BY PASSWORD.*//g' | sed 's/$/;/g'> grant_user.sql

3、在目标库执行以上脚本,并执行flush privileges

由于目标库可能有冲突的用户,会导致脚步报错。若希望忽略报错,可以加-f参数强制跳过。

mysql  -h ${dest_host} -P ${dest_port}  -u ${dest_admin_user}  --password=${dest_pass}  -A  < create_user.sql
mysql  -h ${dest_host} -P ${dest_port}  -u ${dest_admin_user}  --password=${dest_pass}    -A  < grant_user.sql
mysql  -h ${dest_host} -P ${dest_port}  -u ${dest_admin_user}  --password=${dest_pass}   -A  "flush privileges"

其他MySQL版本或产品适配:

MySQL 5.6以上(不含5.6)版本

需要将生成创建用户的命令中的AS \'', password,'\';'修改为AS \'', authentication_string,'\';'


其他MySQL产品或版本

需要将创建用户和赋权脚本中的user NOT IN  ('root','aurora','replicator','') 替换为该产品的默认系统用户(PS:MySQL 5.7新增默认用户mysql.session,mysql.infoschema,mysql.sys,迁移的时候要剔除)


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
6月前
|
关系型数据库 MySQL 分布式数据库
安全可靠的PolarDB V2.0 (兼容MySQL)产品能力及应用场景
PolarDB分布式轻量版采用软件输出方式,能够部署在您的自主环境中。PolarDB分布式轻量版保留并承载了云原生数据库PolarDB分布式版技术团队深厚的内核优化成果,在保持高性能的同时,显著降低成本。
649 140
|
4月前
|
Cloud Native 关系型数据库 MySQL
免费体验!高效实现自建 MySQL 数据库平滑迁移至 PolarDB-X
PolarDB-X 是阿里云推出的云原生分布式数据库,支持PB级存储扩展、高并发访问与数据强一致,助力企业实现MySQL平滑迁移。现已开放免费体验,点击即享高效、稳定的数据库升级方案。
免费体验!高效实现自建 MySQL 数据库平滑迁移至 PolarDB-X
|
4月前
|
关系型数据库 MySQL 分布式数据库
阿里云PolarDB云原生数据库收费价格:MySQL和PostgreSQL详细介绍
阿里云PolarDB兼容MySQL、PostgreSQL及Oracle语法,支持集中式与分布式架构。标准版2核4G年费1116元起,企业版最高性能达4核16G,支持HTAP与多级高可用,广泛应用于金融、政务、互联网等领域,TCO成本降低50%。
|
4月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
519 7
|
7月前
|
关系型数据库 MySQL 分布式数据库
Super MySQL|揭秘PolarDB全异步执行架构,高并发场景性能利器
阿里云瑶池旗下的云原生数据库PolarDB MySQL版设计了基于协程的全异步执行架构,实现鉴权、事务提交、锁等待等核心逻辑的异步化执行,这是业界首个真正意义上实现全异步执行架构的MySQL数据库产品,显著提升了PolarDB MySQL的高并发处理能力,其中通用写入性能提升超过70%,长尾延迟降低60%以上。
|
8月前
|
Ubuntu 关系型数据库 MySQL
mysql8.0安装初始化不需要设定root密码?
uubntu 的mysql安装完成后无法设定root密码
493 10
|
9月前
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
2341 26
|
11月前
|
人工智能 关系型数据库 分布式数据库
100%兼容MySQL!手把手教你基于PolarDB搭建RAG系统
100%兼容MySQL!手把手教你基于PolarDB搭建RAG系统
671 0
|
9月前
|
关系型数据库 分布式数据库 数据库
一库多能:阿里云PolarDB三大引擎、四种输出形态,覆盖企业数据库全场景
PolarDB是阿里云自研的新一代云原生数据库,提供极致弹性、高性能和海量存储。它包含三个版本:PolarDB-M(兼容MySQL)、PolarDB-PG(兼容PostgreSQL及Oracle语法)和PolarDB-X(分布式数据库)。支持公有云、专有云、DBStack及轻量版等多种形态,满足不同场景需求。2021年,PolarDB-PG与PolarDB-X开源,内核与商业版一致,推动国产数据库生态发展,同时兼容主流国产操作系统与芯片,获得权威安全认证。

热门文章

最新文章

推荐镜像

更多