<强>前言:强>
最近遇到实例迁移的问题,数据迁完后还需要将数据库用户及权限迁移过去。进行逻辑备份时,我一般习惯将MySQL系统库排除掉,这样备份里面就不包含数据库用户相关信息了。这时候如果想迁移用户相关信息可以采用以下三种方案,类似的我们也可以采用以下三种方案来备份数据库账号相关信息。(本文方案针对MySQL5.7版本,其他版本稍有不同)
1., mysqldump逻辑导出用户相关信息h5>
我们知道,数据库用户密码及权限相关信息保存在系统库<代码> mysql> 代码里面。采用,mysqldump可以将相关表数据导出来如果有迁移用户的需求我们可以按照需求在另外的实例中插入这些数据。下面我们来演示下:
<代码类=" language-shell "> #只导出mysql库中的用户,db, tables_priv表数据 #如果你有针队列的赋权可以再导出columns_priv表数据 #若数据库开启了GTID导出时最好加上——set-gtid-purged=,mysqldump -uroot -proot mysql用户db tables_priv - t——skip-extended-insert比;/tmp/user_info.sql #导出的具体信息 -- “用户”——倾销的数据表 -- “用户”锁定表写;/* !40000年改变表的用户禁用键*/; 插入“用户”值(‘%’、‘根’、‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,‘Y’,”_binary”, _binary”, _binary”, 0, 0, 0, 0,‘mysql_native_password’,‘* 81年f5e21e35407d884a6cd4a731aebfb6af209e1b”、“N”、“2019-03-06 03:03:15 ", NULL,“N”); 插入“用户”值(“localhost”、“mysql。会话”、“N, N’,‘N’,‘N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' Y ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ',”_binary”, _binary”, _binary”, 0, 0, 0, 0, ' mysql_na THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE tive_password”、“*”、“N”、“2019-03-06 02:57:40”,空,“Y”); 插入“用户”值(“localhost”、“mysql。sys ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ',”_binary”, _binary”, _binary”, 0, 0, 0, 0, ' mysql_native THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE _password”、“*”、“N”、“2019-03-06 02:57:40”,空,“Y”); 插入“用户”值(‘%’,‘测试’,‘N’, ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ',”_binary”, _binary”, _binary”, 0, 0, 0, 0,‘mysql_native_password’,‘* 94年bdcebe19083ce2a1f959fd02f964c7af4cfc29”、“N”、“2019-04-19 06:24:54 ", NULL,“N”); 插入“用户”值(“%”,“读”,' Y ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ',”_binary”, _binary”, _binary”, 0, 0, 0, 0,‘mysql_native_password’,‘* 2158年defbe7b6fc24585930df63794a2a44f22736”、“N”、“2019-04-19 06:27:45 ", NULL,“N”); 插入“用户”值(‘%’、‘test_user’、‘N’, ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ',”_binary”, _binary”, _binary”, 0, 0, 0, 0, mysql_native_passwor d ', ' * 8 a447777509932f0ed07adb033562027d95a0f17”、“N”、“2019-04-19 06:29:38 ", NULL,“N”);/* !40000年ALTER TABLE“用户”使键*/; 打开表; -- ——倾销“数据库”数据表 -- 锁表“分贝”写;/* !40000年ALTER TABLE db的禁用键*/; 插入数据库的值(“localhost”、‘performance_schema’,‘mysql.session’,‘Y’, ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N '); 插入数据库的值(“localhost”、“sys”、‘mysql.sys’,‘N’,‘N’, ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' N ', ' Y '); 插入数据库的值(‘%’、‘test_db’、‘测试’,' Y ', ' Y ', ' Y ', ' Y ', ' Y ', ' Y ', ' N ', ' N ', ' N ', ' Y ', ' N ', ' N ', ' Y ', ' Y ', ' N ', ' N ', ' Y ', ' N ', ' N ');/* !40000 ALTER TABLE“分贝”使键*/; 打开表; -- ——倾销数据表“tables_priv” -- 锁表的tables_priv写;/* !40000年ALTER TABLE的tables_priv禁用键*/; 插入“tables_priv”值(“localhost”、“mysql”、“mysql。会话”、“用户”、“boot@connecting主机”、“0000-00-00就是”、“选择”、“); 插入“tables_priv”值(“localhost”、“sys”、“mysql。sys”、“sys_config”、“root@localhost”、“2019-03-06 02:57:40’、‘选择’,”); 插入“tables_priv”值(‘%’、‘test_db’、‘test_user’,‘t1’,‘root@localhost’,‘0000-00-00就是’,‘选择、插入、更新、删除’,”);/* !40000 ALTER TABLE的tables_priv使键*/; 打开表; #在新的实例插入所需数据就可以创建出相同的用户及权限了如何优雅的备份账号相关信息