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

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

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

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


User Comments
  Posted by asdf asdf on May 16, 2015
The point "2." in the manual – changing an owner.
You better know that chown has an option "L" that will make it recursively change owner of symbolically linked directories and of all their subnodes and symlinks destinations. So, if there are symbolic links in Your directory and You want to change owner for all of their contents, use this:
chown -RL user_name /path/to/mysql/datadir

Source:
http://linux.die.net/man/1/chown
Sign Up Login You must be logged in to post a comment.