MySQLが提供しているサンプルデータベースのsakilaを非対話で作成する方法です。
sakilaサンプルデータベースを作成する
mysql5.6以前を使用している場合は、mysqlコマンドの最後に指定しているパスワード指定(-p
オプション)は不要かもしれません。また、5.7以降を使用している場合は、こちらを参考に、rootユーザのパスワードを調べる必要があるかもしれません。
# sakila-dbを取得し展開
wget http://downloads.mysql.com/docs/sakila-db.tar.gz
tar -zxvf sakila-db.tar.gz
# データベース&テーブルの作成
mysql -u root -e "source sakila-db/sakila-schema.sql" -p
# 作成したテーブルにデータを登録
mysql -u root -e "source sakila-db/sakila-data.sql" -p
# 作成できたか確認
mysql -u root -e "show databases;" -p
mysql -u root -D sakila -e "show tables;" -p
# 展開したsakila-dbのsqlファイルを削除
rm -rf sakila-db
パスワードのチェックを無効化する
セキュアでなくなるのでオススメはしないけど、検証目的などで簡単(推測されやすい)なパスワードを指定可能にする場合は、下記のコマンドを実行します。
# rootで作業
echo validate-password=OFF >> /etc/my.cnf
systemctl restart mysqld.service
一般ユーザを作る
必要に応じて、DBにアクセスするユーザも作成します。
# create sakila user
mysql -u root -e "CREATE USER sakila@'%' IDENTIFIED BY 'sakila';"
mysql -u root -e "GRANT ALL PRIVILEGES ON *.* TO sakila@'%';"
mysql -u root -e "FLUSH PRIVILEGES;"
# check created user
mysql -u root -e "SELECT host, user FROM mysql.user;"
mysql -u root -e "show grants for sakila@'%';"
ユーザを作成したらログインできることを確認します
mysql -u sakila -psakila -h 127.0.0.1 -D sakila -e "show tables"
こちらもおススメ