mysql导出用户

更新时间:02-10 教程 由 悦缘 分享

MySQL 是流行的关系型数据库管理系统,当你需要在不同的服务器之间迁移数据时,常常需要将数据库中的用户和权限也同时导出来。下面介绍如何使用 MySQL 命令行导出用户。

1. 登录 MySQL

$ mysql -u USERNAME -pEnter password: PASSWORD

其中,USERNAME 为 MySQL 用户名,PASSWORD 为密码。如果密码为空,可以直接输入回车。

2. 查看用户

mysql>SELECT User, Host FROM mysql.user;+------------------+-----------+| User | Host |+------------------+-----------+| root | localhost || mysql.session | localhost || mysql.sys | localhost || debian-sys-maint | localhost |+------------------+-----------+4 rows in set (0.00 sec)

通过以上命令可以查看当前数据库中的用户和主机信息。

3. 导出用户

mysql>SELECT CONCAT('CREATE USER ''', user, '''@''', host, ''' IDENTIFIED BY ''password'';') FROM mysql.user; >/tmp/create_users.sql

将以上命令执行后,会将创建用户的语句保存在 /tmp/create_users.sql 文件中。其中,password 可以替换为具体的密码。

4. 导出用户权限

mysql>SELECT CONCAT('GRANT ', GROUP_CONCAT(DISTINCT privilege_type SEPARATOR ', '), ' ON *.* TO ''', user, '''@''', host, '''') FROM mysql.user LEFT JOIN mysql.db ON (mysql.user.User = mysql.db.User AND mysql.user.Host = mysql.db.Host) LEFT JOIN mysql.tables_priv ON (mysql.user.User = mysql.tables_priv.User AND mysql.user.Host = mysql.tables_priv.Host) LEFT JOIN mysql.columns_priv ON (mysql.user.User = mysql.columns_priv.User AND mysql.user.Host = mysql.columns_priv.Host) WHERE mysql.user.User != '' and mysql.user.Host != '' and mysql.user.User NOT LIKE 'mysql.%' GROUP BY mysql.user.User, mysql.user.Host INTO OUTFILE '/tmp/grant_users.sql';

以上命令会将各个用户的权限授予语句保存在 /tmp/grant_users.sql 文件中。

至此,我们成功导出了数据库中的用户和用户相应的权限。

声明:关于《mysql导出用户》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2255067.html