Windows 上では、通常のユーザーアカウントを使用して Windows サービスとしてサーバーを実行できます。
Linux では、MySQL リポジトリまたは RPM パッケージを使用してインストールを実行する場合、ローカルの mysql
オペレーティングシステムユーザーが MySQL サーバー mysqld を起動する必要があります。 別のオペレーティングシステムユーザーによる開始は、MySQL リポジトリの一部として含まれる init スクリプトではサポートされていません。
Unix (tar.gz
パッケージを使用して実行されるインストールの場合は Linux) では、MySQL サーバー mysqld を起動して任意のユーザーが実行できます。 しかし、セキュリティー上の理由から、Unix root
ユーザーとしてサーバーを実行することは避けてください。 mysqld を変更し、権限のない普通の Unix ユーザー user_name
として実行するには、次のことを行う必要があります。
サーバーが稼働していれば、サーバーを停止します (mysqladmin shutdown を使用します)。
-
データベースディレクトリとファイルを変更して、
user_name
がそこのファイルの読み取りおよび書き込みを行う権限を与えます (この操作は Unixroot
ユーザーとして行う必要があります)。shell> chown -R user_name /path/to/mysql/datadir
これを行わないと、サーバーは
user_name
として実行されているときにデータベースまたはテーブルにアクセスできません。MySQL データディレクトリ内のディレクトリまたはファイルがシンボリックリンクの場合、
chown -R
がシンボリックリンク先を参照しないことがあります。 そうでない場合は、これらのリンクをたどり、それらが指し示しているディレクトリおよびファイルを変更する必要もあります。 user_name
というユーザーでサーバーを起動します。 別の方法として、Unixroot
ユーザーとして mysqld を起動し、--user=
オプションを使用することもできます。mysqld が起動し、接続を受け入れる前に Unix ユーザーuser_name
user_name
として実行されるように切り替えます。-
システム起動時に指定されたユーザーとしてサーバーを起動するには、
/etc/my.cnf
オプションファイルまたはサーバーのデータディレクトリに格納されているmy.cnf
オプションファイルの[mysqld]
グループに、user
オプションを追加することによってユーザー名を指定します。 例:[mysqld] user=user_name
Unix マシン自体が保護されていない場合は、権限付与テーブルで MySQL root
アカウントにパスワードを割り当てる必要があります。 これをしないと、そのマシンのログインアカウントを持つすべてのユーザーが、--user=root
オプションを使用して mysql クライアントを実行でき、あらゆる操作を行うことができます。 (すべての場合に MySQL アカウントにパスワードを割り当てることはよい考えですが、ほかのログインアカウントがサーバーホスト上に存在する場合は特に重要です。) セクション2.10.4「初期 MySQL アカウントの保護」を参照してください。