2016-09-07 31 views
1

我有一个将其数据存储在MySQL数据库中的应用程序。应用程序使用具有完全访问权限的特定DB帐户,个人用户权限在应用程序级别上维护。除root之外,没有其他用户可以访问该数据库。如何创建MySQL安装设置脚本?

为了安装我需要一个SQL脚本创建数据库,应用程序的用户,没有数据,视图中的所有表,触发器,存储过程在计算机上的应用等

mysqldump --no-data --routines --add-drop-database --databases dbname > sqlfile会做几乎所有的这些东西,但我找不到任何选项来包含有权访问该数据库的用户的创建。任何提示?

回答

1

mysqldump不转储用户信息的原因是因为它存储在不同的数据库名称mysql中,而不是存储在您的应用程序的数据库中。

您不能手动将此信息添加到生成的SQL转储。你有两个选择。创建一个shell脚本或创建一个包含用户创建信息的单独的sql文件。在这两种情况下,你的文件将包括像

GRANT ALL ON appdb.* TO 'pb_skat'@'localhost'; 

http://dev.mysql.com/doc/refman/5.7/en/grant.html

+0

谢谢e4c5。这是我关心的,所以我将用两个脚本去安装脚本调用:数据库结构和用户。 (回顾性地说,我很高兴我决定保持应用程序级别的授权,而不是在数据库中......) –

+0

对不起,因为我迟到了这个项目,所以我很 - 很急 - 所以我忘了。无论如何,除了这个表格上的所有按钮(我希望我推送了所有必需的东西)之外,我仍然认为个人感谢那些花时间去帮助的人是最重要的。所以再次e4c5:非常感谢你! –

+0

与您的项目一切顺利 – e4c5

0

声明引入应用转储数据库之前。

  1. 首先列出下降,这一切都可以与你的用户:

SELECT用户,主机,密码从mysql.user;

  1. 检查用户是否有使用“show grants”命令执行操作的权限,否则提供权限来执行操作。

授予关于的所有特权。 TO'root'@'localhost'WITH GRANT OPTION

  1. 在您想要引入转储的位置创建数据库名称。