如何优雅的备份账号相关信息

  

<强>前言:

  

最近遇到实例迁移的问题,数据迁完后还需要将数据库用户及权限迁移过去。进行逻辑备份时,我一般习惯将MySQL系统库排除掉,这样备份里面就不包含数据库用户相关信息了。这时候如果想迁移用户相关信息可以采用以下三种方案,类似的我们也可以采用以下三种方案来备份数据库账号相关信息。(本文方案针对MySQL5.7版本,其他版本稍有不同)

  
1., mysqldump逻辑导出用户相关信息h5> 我们知道,数据库用户密码及权限相关信息保存在系统库<代码> mysql>   
 <代码类=" 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使键*/;
  打开表;
  
  #在新的实例插入所需数据就可以创建出相同的用户及权限了
  

如何优雅的备份账号相关信息