MySQL 8.0 リファレンスマニュアル


MySQL 8.0 リファレンスマニュアル  /  ...  /  MySQL を通常ユーザーとして実行する方法

6.1.5 MySQL を通常ユーザーとして実行する方法

Windows 上では、通常のユーザーアカウントを使用して Windows サービスとしてサーバーを実行できます。

Linux では、MySQL リポジトリまたは RPM パッケージを使用してインストールを実行する場合、ローカルの mysql オペレーティングシステムユーザーが MySQL サーバー mysqld を起動する必要があります。 別のオペレーティングシステムユーザーによる開始は、MySQL リポジトリの一部として含まれる init スクリプトではサポートされていません。

Unix (tar.gz パッケージを使用して実行されるインストールの場合は Linux) では、MySQL サーバー mysqld を起動して任意のユーザーが実行できます。 しかし、セキュリティー上の理由から、Unix root ユーザーとしてサーバーを実行することは避けてください。 mysqld を変更し、権限のない普通の Unix ユーザー user_name として実行するには、次のことを行う必要があります。

  1. サーバーが稼働していれば、サーバーを停止します (mysqladmin shutdown を使用します)。

  2. データベースディレクトリとファイルを変更して、user_name がそこのファイルの読み取りおよび書き込みを行う権限を与えます (この操作は Unix root ユーザーとして行う必要があります)。

    shell> chown -R user_name /path/to/mysql/datadir

    これを行わないと、サーバーは user_name として実行されているときにデータベースまたはテーブルにアクセスできません。

    MySQL データディレクトリ内のディレクトリまたはファイルがシンボリックリンクの場合、chown -R がシンボリックリンク先を参照しないことがあります。 そうでない場合は、これらのリンクをたどり、それらが指し示しているディレクトリおよびファイルを変更する必要もあります。

  3. user_name というユーザーでサーバーを起動します。 別の方法として、Unix root ユーザーとして mysqld を起動し、--user=user_name オプションを使用することもできます。mysqld が起動し、接続を受け入れる前に Unix ユーザー user_name として実行されるように切り替えます。

  4. システム起動時に指定されたユーザーとしてサーバーを起動するには、/etc/my.cnf オプションファイルまたはサーバーのデータディレクトリに格納されている my.cnf オプションファイルの [mysqld] グループに、user オプションを追加することによってユーザー名を指定します。 例:

    [mysqld]
    user=user_name

Unix マシン自体が保護されていない場合は、権限付与テーブルで MySQL root アカウントにパスワードを割り当てる必要があります。 これをしないと、そのマシンのログインアカウントを持つすべてのユーザーが、--user=root オプションを使用して mysql クライアントを実行でき、あらゆる操作を行うことができます。 (すべての場合に MySQL アカウントにパスワードを割り当てることはよい考えですが、ほかのログインアカウントがサーバーホスト上に存在する場合は特に重要です。) セクション2.10.4「初期 MySQL アカウントの保護」を参照してください。


関連キーワード:  ユーザー, アカウント, パスワード, サーバー, 認証, 実行, user, セキュリティー, インストール, プラガブル