PostgreSQLのcreatedbなど、シェルコマンドを使用してデータベースを作成できる他のソリューションを探しています。ヒントはありますか?
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
本当にデータベースのみを作成したい場合。
Mysql環境ながらですか?
create database testdb;
または、コマンドラインから直接:
mysql -u root -e "create database testdb";
新しいデータベースを作成する場合、このデータベースのみのアクセス許可を持つユーザーを作成することをお勧めします(何か問題が発生した場合、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のパスワードです
mysqladmin -u$USER -p$PASSWORD create $DB_NAME
上記の変数を置き換えると、このonelinerを使用するのに適しています。 $ USERはユーザー名、$ PASSWORDはパスワード、$ DB_NAMEはデータベースの名前です。
つかいます
$ mysqladmin -u <db_user_name> -p create <db_name>
パスワードの入力を求められます。また、使用するmysqlユーザーにデータベースを作成する権限があることを確認してください。
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'";
コマンドラインで SQL を使用できます。
echo 'CREATE DATABASE dbname;' | mysql <...>
または、 mysqladmin
を使用できます。
mysqladmin create dbname
基本ユーザーを使用してDBに接続します:mysql -u base_user -pbase_user_pass
そして、CREATE DATABASE、CREATE USER、およびGRANT PRIVILEGESステートメントを実行します。
ステートメントを支援する便利なWebウィザード www.bugaco.com/helpers/create_database.html