参考来源:

https://www.cnblogs.com/huangmr0811/p/5570994.html

https://blog.csdn.net/u011665746/article/details/79067656

5.6导出执行脚本:

入参:
export_db_ip=$ #服务器IP
export_db_port=$2 #MySQL端口
export_user=$3 #导出用户
export_user_passwd=$4 #导出用户密码
 ###传入导出服务器及用户信息
export_db_ip=$
export_db_port=$
export_user=$
export_user_passwd=$ ###文件保存目录
path=`pwd` ###导出用户
mysql -B -N -h $export_db_ip -P $export_db_port -u${export_user} -p${export_user_passwd} -e "SELECT CONCAT('\'', user,'\'@\'', host, '\'') FROM user WHERE user != 'mysql.session' and user != 'mysql.sys' AND user != 'root' AND user != ''" mysql > $path/mysql_all_users.txt ###导出用户权限
while read line;
do
mysql -B -N -h $export_db_ip -P $export_db_port -u${export_user} -p${export_user_passwd} -e "SHOW GRANTS FOR $line";
done < $path/mysql_all_users.txt > $path/mysql_all_users_sql.sql ###每行行尾增加;
sed -i 's/$/;/' $path/mysql_all_users_sql.sql ###立即生效
echo "flush privileges;" >> $path/mysql_all_users_sql.sql

5.7导出执行脚本:

入参:
export_db_ip=$1 #服务器IP
export_db_port=$2 #MySQL端口
export_user=$3 #导出用户
export_user_passwd=$4 #导出用户密码
#!/bin/bash
#Function export user privileges
#5.7存在问题: show grants for 不会给出密码信息,必须用 show create user
# https://dev.mysql.com/doc/refman/5.7/en/show-grants.html
# show create user 为5.7版本开始存在,5.6执行报错。 ###传入导出服务器及用户信息
export_db_ip=$1
export_db_port=$2
export_user=$3
export_user_passwd=$4 ###文件保存目录
path=`pwd` source /etc/profile pwd=password
expgrants()
{
mysql -B -h $export_db_ip -P $export_db_port -u${export_user} -p${export_user_passwd} -N $@ -e "SELECT CONCAT( 'SHOW CREATE USER ''', user, '''@''', host, ''';' ) AS query FROM mysql.user" | \
mysql -h $export_db_ip -P $export_db_port -u${export_user} -p${export_user_passwd} -f $@ | \
sed 's#$#;#g;s/^\(CREATE USER for .*\)/-- \1 /;/--/{x;p;x;}' mysql -B -h $export_db_ip -P $export_db_port -u${export_user} -p${export_user_passwd} -N $@ -e "SELECT CONCAT( 'SHOW GRANTS FOR ''', user, '''@''', host, ''';' ) AS query FROM mysql.user" | \
mysql -h $export_db_ip -P $export_db_port -u${export_user} -p${export_user_passwd} -f $@ | \
sed 's/\(GRANT .*\)/\1;/;s/^\(Grants for .*\)/-- \1 /;/--/{x;p;x;}'
}
expgrants > $path/mysql_all_users_sql_5.7.sql ###立即生效
echo "flush privileges;" >> $path/mysql_all_users_sql_5.7.sql

导出执行语句:

[root@db02 tmp]# mysql -u root -p < mysql_all_users_sql.sql

MySQL 之迁移用户及权限的更多相关文章

  1. MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限

    1.新建用户 //登录MYSQL @>mysql -u root -p @>密码 //创建用户 mysql> insert into mysql.user(Host,User,Pas ...

  2. mysql 新增 删除用户和权限分配

    请一定安此步骤来创建新的用户. 1. 新增用户 mysql>insert into mysql.user(Host,User,Password) values("localhost&q ...

  3. MySQL 授予普通用户PROCESS权限

    在MySQL中如何给普通用户授予查看所有用户线程/连接的权限,当然,默认情况下show processlist是可以查看当前用户的线程/连接的. mysql> grant process on ...

  4. mysql 赋给用户远程权限 grant all privileges on

    我配置了权限 就可以在Windows下访问我虚拟机中的数据库了 来源:http://blog.csdn.net/louisliaoxh/article/details/52767209 登录: 在本机 ...

  5. MySQL中创建用户分配权限

    测试环境:CentOS6.8 和 MySQL5.5.4 一 需求 在项目开发的过程中可能需要开放自己的数据库给别人,但是出于安全的考虑,不能同时开放自己服务器里的其他数据库.那么可以新建一个用户,赋予 ...

  6. MySQL操作(一)用户及权限

    一.mysql 里的所有用户都是存储在数据库mysql的user表里 二.创建普通用户.赋权.撤销权限 的操作 1.创建用户(需要先用root进去mysql)格式:create  user  '用户名 ...

  7. MySQL授权远程用户登录权限

    1 举例子,建数据库,然后 赋予用户远程访问的所有权限,最后刷新权限 create database cmf DEFAULT CHARACTER SET utf8; grant all on cmf. ...

  8. mysql新加用户设置权限

    1.开通操作权限和表权限 GRANT CREATE,ALTER,DROP,INSERT,UPDATE,DELETE,SELECT ON interface.* TO test1@'%' identif ...

  9. mysql 查看用户的权限

    show grants for 'username'@'%';

随机推荐

  1. Collection接口中方法的使用

    Collection:集合的接口 1.Collection和ArrayList和List的关系 ArrayList      implement(实现)       List List        ...

  2. 续drone 1.0 新界面调整

    接以前的内容,drone 最新发布的版本又有界面信息的调整了,更方便了. 环境准备 docker-compose 文件 version: '3' services: drone-server: ima ...

  3. STDOUT/STDERR重定向到ALOG中

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/kangear/article/details/24534707      说下背景:如今众多Andr ...

  4. httpd

    http://httpd.apache.org/docs/2.2/logs.html httpd.conf文件 Configuration and logfile names: If the file ...

  5. Dynamics CRM Solution

    Default solution Dynamics comes pre-loaded with a Default Solution Contains all the base objects, en ...

  6. 设置 sideload Outlook Add-ins

    上期,我们讲到了用前端技术去建立一个outlook add-ins 我们今天来讲解一下怎样测试一个sideload outlook add-ins. 1. 我们需要登录Outlook在Office 3 ...

  7. range— 建立一个包含指定范围单元的数组 (數字、字母)

    range()函数快速创建从1到12的数字数组 $numbers=range(0,12); echo '<pre>'; print_r($numbers); echo '</pre& ...

  8. Cordova+Angularjs+Ionic 混合开发入门讲解

    作为一名学习Android开发的学生,对于移动开发的发展趋势颇为关注,大家都知道,现在原生的移动开发在企业上基本很少使用了,大部分企业为了降低成本,选择了webapp,hybrid(混合开发)这两种模 ...

  9. Vivado HLS初识---阅读《vivado design suite tutorial-high-level synthesis》(6)

    Vivado HLS初识---阅读<vivado design suite tutorial-high-level synthesis>(6) 1.创建工程与开启GUI 2.调试 查看关于 ...

  10. HIMSS EMRAM新版标准将于2018年1月1日生效

    https://www.cn-healthcare.com/article/20170223/content-489862.html HIMSS EMRAM新版标准将于2018年1月1日生效 2017 ...