【初心者向け】MySQLオプションの基本!値の指定方法と「=」記号のルールを解説
本記事では、MySQLにおけるオプションのデフォルト動作、値を必要とするオプション、そして「=」(イコール)記号の扱いについて詳しく解説します。
値を指定するオプションの基本的な書き方
慣例として、値を設定する形式のロングオプションは「=」記号を使って記述します。以下のように書くのが一般的です。
mysql --host=tonfisk --user=jon
一方、値が必須となるオプション(デフォルト値を持たないオプション)については、「=」記号は必須ではありません。つまり、スペース区切りで次のように書いても正しく動作します。
mysql --host tonfisk --user jon
どちらの書き方でも、mysqlクライアントは「tonfisk」という名前のホスト上で稼働しているMySQLサーバーへ、「jon」というユーザー名のアカウントを使って接続を試みます。
値の指定漏れによって起こる問題
この仕様が原因で、値を必要とするオプションに値が指定されなかった場合に、予期しない挙動やエラーが発生することがあります。具体的な例を見ていきましょう。
正常に接続できるケース
ホスト「85.224.35.45」で稼働しているMySQLサーバーに、ユーザー「jon」として接続する場合、次のコマンドを実行します。
shell> mysql --host 85.224.35.45 --user jon
実行結果:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 8.0.25 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
続いて、接続ユーザーを確認するために以下のコマンドを実行します。
mysql> SELECT CURRENT_USER();
実行結果:
+----------------+ | CURRENT_USER() | +----------------+ | jon@% | +----------------+ 1 row in set (0.00 sec)
コマンドの末尾にあるオプションの値を省略した場合
値が必要なオプションの値を省略すると、エラーが発生します。例えば、次のようなコマンドを実行したとします。
shell> mysql --host 85.224.35.45 --user
実行結果:
mysql: option '--user' requires an argument
このケースでは、--userオプションの後ろにコマンドライン上で何も続いていないため、mysqlは値を発見できず、明確なエラーメッセージを出力します。
途中にあるオプションの値を省略した場合
ところが、コマンドの途中にあるオプションの値を省略した場合は、話が変わります。ユーザーの意図しない別のエラーが発生するのです。
shell> mysql --host --user jon
実行結果:
ERROR 2005 (HY000): Unknown MySQL server host '--user' (1)
この例では、「--user」という文字列そのものが--hostオプションの値(ホスト名)として解釈されてしまうため、「未知のMySQLサーバーホスト」というエラーが出力されます。
このように、値を取るオプションを使用する際には、値の指定漏れがないか十分に注意しましょう。特に複数のオプションを組み合わせる場合は、「=」記号を使った形式で記述することで、この種のミスを防ぎやすくなります。
-
MySQL 8.0で新たに導入されたオプションと変数の一覧
MySQL 8.0で新たに追加されたオプション・変数とは MySQL 8.0では、パフォーマンスの向上や運用管理の柔軟性を高めるために、数多くの新しいオプションおよびシステム変数が導入されました。ここでは、その中から代表的なものを紹介します。各項目には、変数の意味と、追加されたバージョンを併記しています。 ステータス変数(Com_*系) Com_clone: 実行されたCLONEステートメントの数を示します。MySQL 8.0.2で追加されました。 Com_create_role: 実行されたCREATE ROLEステートメントの数を示します。MySQL 8.0.0で追加されました。 Co
-
MySQLプログラムのコマンドラインでオプションを使う方法を解説
MySQLプログラムでは、コマンドラインからさまざまなオプションを指定することで、動作を細かく制御できます。本記事では、MySQLプログラムのコマンドラインでオプションを使用する方法について、基本ルールから具体例までわかりやすく解説します。 コマンドラインオプションの基本ルール コマンドラインで指定するMySQLプログラムのオプションには、以下のルールが存在します。 1. オプションはコマンド名の後に記述する すべてのオプションは、実行するコマンド名の後に続けて指定します。 2. ショートフォームとロングフォーム オプション引数は、ハイフン1つ(-)または2つ(--)で始まります。ハイフ