Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建MySQL安装脚本?_Mysql - Fatal编程技术网

如何创建MySQL安装脚本?

如何创建MySQL安装脚本?,mysql,Mysql,我有一个将数据存储在MySQL数据库中的应用程序。应用程序使用具有完全访问权限的特定DB帐户,独立用户权限在应用程序级别上维护。除了root用户之外,没有其他用户可以访问该数据库 为了在计算机上安装应用程序,我需要一个sql脚本来创建数据库、应用程序用户、所有没有数据的表、视图、触发器、存储过程等 mysqldump--no data--routines--add-drop-database--databases dbname>sqlfile几乎可以完成所有这些事情,但是我找不到任何选项来包括创

我有一个将数据存储在MySQL数据库中的应用程序。应用程序使用具有完全访问权限的特定DB帐户,独立用户权限在应用程序级别上维护。除了root用户之外,没有其他用户可以访问该数据库

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


mysqldump--no data--routines--add-drop-database--databases dbname>sqlfile
几乎可以完成所有这些事情,但是我找不到任何选项来包括创建有权访问该数据库的用户。有什么提示吗

mysqldump不转储用户信息的原因是,这些信息存储在不同的数据库名
mysql
中,而不是存储在应用程序的数据库中

您也不能手动将此信息添加到生成的sql转储中。你有两个选择。创建shell脚本或创建包含用户创建信息的单独sql文件。在任何一种情况下,您的文件都将包含如下语句

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

将应用程序转储引入数据库之前

  • 首先列出您可以使用的所有用户:
  • 从mysql.User中选择用户、主机、密码

  • 使用“show grants”命令检查该用户是否具有执行该操作的权限,否则请提供执行该操作的权限
  • 授予在上的所有特权。使用GRANT选项连接到“根”@“本地主机”

  • 创建要在其中引入转储的数据库名称

  • 谢谢你。这是我关心的问题,因此我将使用安装脚本调用的两个脚本:数据库结构和用户。(回顾过去,我很高兴我决定在应用程序级别保留授权,而不是在数据库中…)对不起,我过去和现在都很匆忙,因为我的项目迟到了,所以我忘了。不管怎么说,除了表格上的所有按钮(我希望我按了所有要求),我仍然认为对花时间帮助的人的个人感谢是最重要的。再次感谢你!祝你的项目一切顺利