回答:
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
本当にデータベースを作成したいだけの場合。
-u
フラグが2つあるためです
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はすべての特権を持つユーザー(おそらくroot)の
名前ですbase_user_passこれはbase_userのパスワードです(-pとbase_user_passの間のスペースの不足が重要です)
new_dbは新しく作成されたデータベースの名前です
new_db_userはアクセス権を持つ新しいユーザーの名前ですnew_db
new_db_user_passの場合のみ、new_db_user のパスワードです。
-p"root password here"
istと2番目の答えは良いですが、誰かがスクリプトを持っていることを探している場合、または動的なIE(変数の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