使用命令行创建MySQL数据库

17

我正在尝试创建一个批处理文件来创建一个MySQL数据库。到目前为止,我找到的所有信息都没有起作用。仅用于测试,这是我正在尝试的内容...

C:\>mysql -uroot -ppassword < CREATE DATABASE testdb;
C:\>mysql -uroot -ppassword mysql < CREATE DATABASE testdb;
无论我怎样放置它,我都会得到错误提示“系统找不到指定的文件”。如果我只是把...放在一个文件夹中,代码就可以正常工作。 我该怎么办?

无论我怎样放置它,我都会得到错误提示“系统找不到指定的文件”。如果我只是把...放在一个文件夹中,代码就可以正常工作。 我该怎么办?

C:\>mysql -uroot -ppassword

我可以成功登录到 MySQL 提示符,但我到底做错了什么?

4个回答

27

我同意其他帖子的说法,最好将架构放入文件中。不过,这里是如何在命令行上进行操作:

mysql -uroot -ppassword -e "CREATE DATABASE testdb"

7

以root用户身份访问:

mysql -u root -p

需要输入密码...请输入您的密码

然后,像这样运行创建命令:

mysql> create database database_name;

6

最好将您的MySQL写入文件,然后导入该文件。这样,当您需要再次运行它(重新安装或迁移)时,您就有了要运行的MySQL记录。我用于此类文件的代码如下,它会销毁已经存在的任何内容,然后创建数据库并分配一个专用用户。

# uninstall if anything's already there
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';
DROP USER 'username'@'%';
DROP DATABASE IF EXISTS `tablename`;

# create the user
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
CREATE DATABASE IF NOT EXISTS `tablename`;
GRANT ALL PRIVILEGES ON `tablename` . * TO 'username'@'%';

这很完美,除了我无法将其放入文件中。批处理脚本是在我们的 Web 面板中编写的,然后在相关机器上执行。这就是我实际上要编写脚本而不是创建 .sql 文件并执行它的原因。我能够使用 "mysqladmin -uroot -ppass CREATE testdb" 创建数据库,但是在创建用户和分配权限方面,它并不太好用。 - user470760

5

尝试将您的 SQL 放入文本文件中,例如 'createDb.sql',然后运行以下命令:

mysql -uroot -ppassword < createDb.sql; 

你确定它需要在结尾加上分号吗? - JW.
@JW. 不,它不会。但是由于shell会将其吞噬,因此它也没有任何损害。 - Kashyap

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接