【问题标题】:How do I run a script on/in a mysql database?如何在 mysql 数据库上/中运行脚本?
【发布时间】:2011-01-28 06:28:38
【问题描述】:

我使用 MySQL Workbench 创建了一个 MySQL 数据库。它有大约20张桌子。我无法弄清楚如何在数据库上运行脚本。

基本上,我想制作一个数据库创建脚本,它允许我在任何其他 MySQL 服务器上创建我的数据库。

【问题讨论】:

    标签: mysql ddl mysql-workbench


    【解决方案1】:
    create database mydatabase;
    
    grant all on mydatabase.* to 'myuser'@'%' identified by 'mypasswd';
    
    create table mytable (
    id int not null auto_increment,
    myfield varchar(255) not null default ''
    );
    

    等等……

    将其放入名为 mydbcreate.sql 的文件中并运行(从命令行)

    mysql -u <myuser> -p < mydbcreate.sql
    

    【讨论】:

      【解决方案2】:

      了解 mysql 命令行实用程序是有用且重要的,但对于执行常见任务,请使用数据库管理工具(例如 phpMyAdmin)来创建和管理您的数据库。这些工具让创建和浏览表格、创建导出脚本(包含用于创建表格、插入数据等的所有查询的文件)以及其他很棒的东西变得非常容易。

      phpMyAdmin 很棒,可以在 LAMP 环境中运行,免费且易于使用。

      http://www.phpmyadmin.net/home_page/index.php

      在 phpMyAdmin 中导出数据库的屏幕(截图)alt text http://www.typolight.org/tl_files/images/documentation/sql-export.jpg

      【讨论】:

        【解决方案3】:

        这里有一些提示:

        mysqldump -u [username] -p[password] [databasename] > [backupfile.sql]
        

        mysql -u [username] -p[password] [database_to_restore] < [backupfile.sql]
        

        它确实会生成一个包含结构和数据的文件。第二行将数据从文件中取出到数据库中。

        -p 和密码之间没有空格。最好不要将密码放在您的命令中,因为这可能会出现在您的 .bash_history 中。如果您省略密码,系统会提示您输入:

        mysqldump -u [username] -p [databasename] > [backupfile.sql]
        

        mysql -u [username] -p [database_to_restore] < [backupfile.sql]
        

        【讨论】:

          【解决方案4】:

          也许您需要知道这些语句称为 DDL?那你可以去任何一个MySQL站点,问如何生成DDL?不是刻薄,只是说。 . .

          另外,你可以试试这个:

          在命令行中使用带有 --no-data 选项的 mysqldump。如果需要更多信息,请寻求帮助。但一个简单的例子是:

          $ mysqldump -u{username} -p{password} {dbname} --no-data
          

          (当然,没有花括号)

          【讨论】:

            【解决方案5】:

            你有两个选择。

            1. 导出可以在任何 MySQL 服务器上存储和/或任意运行的 CREATE 脚本
            2. 直接与特定的 MySQL 服务器同步。

            对于#1,使用以下菜单命令

            File >> Export >> Forward Engineer SQL CREATE Script...
            

            从这里,您可以使用 MySQL GUI Tools 之类的程序或查看此线程中的其他答案,从命令行导入生成的 SQL 脚本。

            对于#2,使用以下菜单命令

            Database >> Forward Engineer...
            - or -
            Database >> Synchronize Model...
            

            在您执行上述任一操作之前,您可能需要先通过以下方式建立连接

            Database >> Manage Connections...
            

            重要!对于这两个选项,请确保仔细查看提示中可用的每个选项 - 小的设置可能会对输出产生重大影响!

            【讨论】:

              猜你喜欢
              • 2016-10-08
              • 2020-07-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2010-11-19
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多