web-dev-qa-db-ja.com

Shellコマンドからデータベースを作成する方法は?

PostgreSQLのcreatedbなど、シェルコマンドを使用してデータベースを作成できる他のソリューションを探しています。ヒントはありますか?

157
koszikot
cat filename.sql | mysql -u username -p # type mysql password when asked for it

Filename.sqlには、データベースを作成するためのすべてのsqlが保持されます。または...

echo "create database `database-name`" | mysql -u username -p

本当にデータベースのみを作成したい場合。

161
Kris

Mysql環境ながらですか?

create database testdb;

または、コマンドラインから直接:

mysql -u root -e "create database testdb"; 
196
Felix Kling

新しいデータベースを作成する場合、このデータベースのみのアクセス許可を持つユーザーを作成することをお勧めします(何か問題が発生した場合、rootユーザーのログインとパスワードを危険にさらすことはありません)。したがって、すべてが一緒に次のようになります。

mysql -u base_user -pbase_user_pass -e "create database new_db; GRANT ALL PRIVILEGES ON new_db.* TO new_db_user@localhost IDENTIFIED BY 'new_db_user_pass'"

どこで:
base_userは、すべての特権を持つユーザーの名前です(おそらくルート)
base_user_passそれはbase_userのパスワードです(-pとbase_user_passの間にスペースがないことが重要です)
new_dbは新しく作成されたデータベースの名前です
new_db_userは、new_dbのみにアクセスできる新しいユーザーの名前です
new_db_user_pass new_db_userのパスワードです

67
jmarceli
mysqladmin -u$USER -p$PASSWORD create $DB_NAME

上記の変数を置き換えると、このonelinerを使用するのに適しています。 $ USERはユーザー名、$ PASSWORDはパスワード、$ DB_NAMEはデータベースの名前です。

36
karlingen

つかいます

$ mysqladmin -u <db_user_name> -p create <db_name>

パスワードの入力を求められます。また、使用するmysqlユーザーにデータベースを作成する権限があることを確認してください。

18
Willa

Istと2番目の答えは良いですが、誰かがスクリプトを探している場合、または動的なi.e(変数のdb/username/password)が必要な場合はここにあります:

#!/bin/bash



DB="mydb"
USER="user1"
PASS="pass_bla"

mysql -uroot -prootpassword -e "CREATE DATABASE $DB CHARACTER SET utf8 COLLATE utf8_general_ci";
mysql -uroot -prootpassword -e "CREATE USER $USER@'127.0.0.1' IDENTIFIED BY '$PASS'";
mysql -uroot -prootpassword -e "GRANT SELECT, INSERT, UPDATE ON $DB.* TO '$USER'@'127.0.0.1'";
11
Salah-1

コマンドラインで SQL を使用できます。

echo 'CREATE DATABASE dbname;' | mysql <...>

または、 mysqladmin を使用できます。

mysqladmin create dbname
10

基本ユーザーを使用してDBに接続します:mysql -u base_user -pbase_user_passそして、CREATE DATABASE、CREATE USER、およびGRANT PRIVILEGESステートメントを実行します。

ステートメントを支援する便利なWebウィザード www.bugaco.com/helpers/create_database.html

2
CaptZ-