Windows 上では、通常のユーザーアカウントを使用して Windows サービスとしてサーバーを実行できます。
Unix では、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
ユーザーとして--user=
オプションを使用して mysqld を起動する方法もあります。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.2「最初の MySQL アカウントのセキュリティー設定」を参照してください。