前回に引き続き、MySQLのコマンドについて解説する。また、MySQLの設定を保存しているmysqlデータベースの内部構成を知ることで、MySQLへの理解を深めてほしい。
前回は、既存のtestデータベースを使って操作を解説しました。肝心のデータベース作成の手順については、まだお話ししていませんでした。
データベースの作成/削除やMySQLサーバの再起動/停止といった重要な作業は“mysqladmin”コマンドで行います。このmysqladminコマンドを使えるのは、許されたユーザーだけに限られます。試しに、一般ユーザーでMySQLサーバの権限参照定義を再読み込みさせてみましょう。
$ mysqladmin reload mysqladmin: reload failed; error: 'Access denied for user: '@localhost' (Using password: NO)'
上記のように、一般ユーザーの操作は受け付けないようになっています。特別な操作が許されるスーパーユーザー(root)で同じようにやってみましょう(MySQLサーバとmysqladminコマンドを使用するサーバは同一である必要があります)。
# mysqladmin reload
今度は何事もなく終了したと思います。しかし、mysqladminコマンドを使うたびにsuしていたのでは操作が煩わしくなります。そこで、一般ユーザーでmysqladminコマンドを使用できるように、オプションでユーザーを指定します。
$ mysqladmin -u root reload
インストールをしただけの状態では、rootユーザーに対するパスワードが設定されていないため、パスワードの入力を促す、“-p”オプションは指定していません。レンタルサーバを利用している場合などは、管理者でないと使えないので、mysqladminを使う必要がある場合はサーバ管理者に相談しましょう。
では上記のことをふまえて、まずはデータベースを作成してみましょう。
$ mysqladmin -u root create TEST2
mysqlshowコマンドで確認してみましょう。
$ mysqlshow +-----------+ | Databases | +-----------+ | TEST2 | | mysql | | test | +-----------+
このように、TEST2が作られていれば成功です。
データベースを削除する場合は
$ mysqladmin -u root drop TEST2
とし、
Dropping the database is potentially a very bad thing to do. Any data stored in the database will be destroyed. Do you really want to drop the 'TEST2' database [y/N]
の質問に“y”とタイプすれば、削除されます。
作成したデータベースを切り替えて操作するには、mysqlコマンドを起動する際にデータベースを指定します。
$ mysql データベース名
ですが、この方法ではデータベースを切り替えるたびにmysqlプロンプトを抜ける必要があります。一連の操作の中で、mysqlコマンドを終了させることなくデータベースを切り替えるには下記のようにします。
$ mysql test Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 to server version: 3.23.28-gamma Type 'help;' or '\h' for help. Type '\c' to clear the buffer mysql> use TEST2;
これで、データベースを切り替えることができますが、実際には
ERROR 1044: Access denied for user: '@localhost' to database 'TEST2'
となってうまくいかないと思います。これは、参照権の問題です。TEST2データベースを作成した際、rootユーザーでmysqladminコマンドを使用したため、データベースの操作もrootのみに限られてしまったのです。これについては、後ほど紹介するユーザー参照権についてで説明します。
mysql/mysqladminコマンドのオプションの指定方法は2通りあります。1つは前出の
$ mysqladmin -u ユーザー名 [操作]
のように、オプションを“-”で指定して値を入力する方法。もう1つは
$ mysqladmin --user=ユーザー名 [操作]
のように、“--”の後にオプションを指定し、“=”の後に値を入力する方法です。どちらを使うかは好みの分かれるところです。
よく利用されるオプションには下記のようなものがあります。
[mysqlコマンドオプション]
[mysqladminコマンドオプション]
はmysqlコマンドと同じように指定できます。
ほかにも下記のようなものがあります。
そのほかのオプションについては
http://www.mysql.gr.jp/jpdoc/3.23/manual.ja_Installing.html#Command-line_options
を参照してください。
Copyright © ITmedia, Inc. All Rights Reserved.