我有一个应用程序将其数据存储在MySQL数据库中。应用程序使用具有完全访问权限的特定数据库帐户,在应用程序级别维护单独的用户权限。除了root之外,没有其他用户可以访问该数据库。
为了在计算机上安装应用程序,我需要一个用于创建数据库的sql脚本,应用程序用户,所有没有数据的表,视图,触发器,存储过程等。
mysqldump --no-data --routines --add-drop-database --databases dbname > sqlfile
几乎可以做所有这些事情,但我找不到任何选项来包括创建有权访问该数据库的用户。任何提示?
答案 0 :(得分:1)
mysqldump不转储用户信息的原因是因为它存储在不同的数据库名称mysql
中,而不是存储在应用程序的数据库中。
您无法手动将此信息添加到生成的sql转储中。你有两个选择。创建shell脚本或创建包含用户创建信息的单独sql文件。在任何一种情况下,您的文件都将包含
等语句GRANT ALL ON appdb.* TO 'pb_skat'@'localhost';
答案 1 :(得分:0)
在将应用程序转储引入数据库之前。
SELECT用户,主机,密码来自mysql.user;
在上授予所有权限。根目录' @' localhost' WITH GRANT OPTION