MySQL
のインストール後、scripts/mysql_install_db
を実行してアクセス権限を初期設定します。 See
項2.3.1. 「クイックインストールの概要」。
mysql_install_db
スクリプトは
mysqld
サーバを起動し、以下の権限を含むように権限テーブルを初期化します。
MySQL root
ユーザが、すべての操作を実行できるスーパーユーザとして作成される。接続は、ローカルホストから行う必要がある。
注意:
初期状態では、root
パスワードは空白のため、だれでも
root
ユーザとしてパスワードなしで接続でき、すべての権限を得られる。
'test'
という名前のデータベース、または
'test_'
で始まる名前のデータベースにおいてすべての操作を実行できる匿名ユーザが作成される。接続は、ローカルホストから行う必要がある。どのローカルユーザでもパスワードなしで接続でき、その場合、匿名ユーザとして扱われることを意味する。
その他の権限は拒否される。たとえば、一般ユーザは
mysqladmin shutdown
や
mysqladmin processlist
を使用できない。
注意: Windows のデフォルト権限とは異なります。 See 項2.1.1.8. 「Windows での MySQL の実行」。
初期インストール時はアクセスが開放されている状態なので、インストール後はまず、MySQL
root
ユーザにパスワードを設定してください。これは以下のように行います(注意:
PASSWORD()
関数を使用してパスワードを指定します)。
shell>mysql -u root mysql
mysql>SET PASSWORD FOR root@localhost=PASSWORD('new_password');
'new_password'
に、使用するパスワードを指定します。
方法を理解していれば、権限テーブルを直接操作することもできます。
shell>mysql -u root mysql
mysql>UPDATE user SET Password=PASSWORD('new_password')
->WHERE user='root';
mysql>FLUSH PRIVILEGES;
mysqladmin
コマンドを使用しても、パスワードを設定できます。
shell> mysqladmin -u root password new_password
mysql
データベースの書き込み権限および更新権限のあるユーザだけが、他のユーザのパスワードを変更できます。すべての一般ユーザ(匿名ユーザ以外)は、上記のコマンドまたは
SET PASSWORD=PASSWORD('new_password')
を使用して自分のパスワードだけを変更できます。
注意: UPDATE
を使用して
user
テーブルで直接パスワードを更新する場合、FLUSH
PRIVILEGES
を使用してサーバに権限テーブルを再読み込みさせる必要があります。そうしないと変更が認識されません。
root
パスワードをいったん設定するとそれ以降、root
としてサーバに接続する際は常にそのパスワードを入力する必要があります。
追加設定やテストを行っている最中にパスワードを入力しないで済むように、root
パスワードを空白のままにしたい場合もあるでしょう。しかし、実稼動で使用する前には必ずパスワードを設定してください。
デフォルト権限の設定については、scripts/mysql_install_db
スクリプトを参照してください。このスクリプトは、他のユーザを追加する際にその基本として使用できます。
上記の初期権限とは違う初期権限を設定したい場合には、mysql_install_db
を編集してから実行してください。
権限テーブルを完全に再生成するには、mysql
データベースが含まれるディレクトリ内の
.frm
、.MYI
、および
.MYD
ファイルをすべて削除します(このディレクトリは、データディレクトリの下にある
mysql
という名前のディレクトリです。データディレクトリは
mysqld --help
を実行すると表示されます)。そして、必要に応じて権限を編集してから、mysql_install_db
スクリプトを実行します。
注意: MySQL バージョン
3.22.10 より前では、.frm
ファイルを削除しないでください。うっかり削除してしまった場合は、mysql_install_db
を実行する前に、MySQL
ディストリビューションからコピーし直してください。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.