• mysql常用脚本及命令记录


    mysql导出用户权限

    mysql中直接通过授权即可使用对应用户,不必使用创建用户命令(如CREATE USER 'xxx'@'%' IDENTIFIED BY 'XXX';)先建用户再授权。

    方法一:该脚本可以将所有授权数据到当前目录下的sql脚本(grants.sql)中,使用grants.sql脚本刷到数据库中即可完成授权数据迁移(注意:这里导出的数据包含root用户的授权关系,而且导入之后会把目前已有的数据覆盖掉,请确认需要覆盖再进行导入!!):

    #!/bin/bash    
    #Function export user privileges    
      
    pwd=xiongge.club
    expgrants()    
    {  
      mysql -B -u'root' -p${pwd} -N $@ -e "SELECT CONCAT('SHOW GRANTS FOR ''', user, '''@''', host, ''';') AS query FROM mysql.user" | mysql -u'root' -p${pwd} $@ | sed 's/(GRANT .*)/1;/;s/^(Grants for .*)/-- 1 /;/--/{x;p;x;}'  
    }  
    expgrants > ./grants.sql  

    注意:上述代码中,需要根据实际情况(mysql的root用户的密码)替换pwd的值。将上述代码拷贝后,新建并贴到shell脚本(如exp_grants.sh)中执行该脚本即可完成数据库用户授权导出。

    方法二:该脚本可以将所有授权数据到当前目录下的sql脚本(create-users.sql)中,使用create-users.sql脚本刷到数据库中即可完成授权数据迁移(注意:这里导出的数据包含root用户的授权关系,而且导入之后会把目前已有的数据覆盖掉,请确认需要覆盖再进行导入!!)

    #!/bin/bash    
    #Function export user privileges    
    hostname=localhost  
    username=root  
    password=xiongge.club
     port=3306 echo "select concat('show grants for ''',user,'''@''',host, ''';') from mysql.user " |  mysql --host=$hostname --user=$username --password=$password --port=$port -N |  mysql --host=$hostname --user=$username --password=$password --port=$port -N |  sed "s/$/;/" > create-users.sql

    注意:上述代码中,需要根据实际情况替换hostname、username、password、port的值。将上述代码拷贝后,新建并贴到shell脚本(如exp_grants.sh)中执行该脚本即可完成数据库用户授权导出。

  • 相关阅读:
    Beta版使用说明
    【每日scrum】NO.7
    【每日scrum】NO.6
    【每日scrum】NO.5
    【每日scrum】NO.4
    【每日scrum】NO.3
    【每日scrum】NO.2
    【每日scrum】NO.1
    运行及总结
    测试与调试
  • 原文地址:https://www.cnblogs.com/xionggeclub/p/7261824.html
Copyright © 2020-2023  润新知