• ベストアンサー

MySQLの起動ユーザ

よろしくお願いします。 OS:Redhat Enterprise Linux 6 DB:MySQL5.6 OSでrootで作業をしており、MySQLをrpmパッケージからインストールすると、 実行ユーザがrootになってしまうことを危惧しています。 サービスをrootで起動することはセキュリティ上 望ましくない、と聞きました。 別途「mysql」というユーザを作成しました。 このmysqlユーザをサービスの起動ユーザとしたいのですが、 どういった手順でそれを実施すれば良いでしょうか?。

  • MySQL
  • 回答数2
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こんにちわ。 RPMで導入すれば、基本的にmysqlユーザで立ち上がるはずです。 なお、RPMパッケージを導入するユーザと導入したパッケージの起動ユーザとは基本的に関係はないので、安心してください。 #コマンドラインから起動した場合は、起動されたプロセスのオーナーは起動時のユーザになりますが、MySQLのようにデーモンとして利用するプログラムの場合は、起動ユーザに関わらずプロセスのオーナーを設定することができるのが普通です。 ちなみに、MySQLの起動ユーザを決めるのは、デフォルトの状態だと/etc/my.cnfというMySQLの設定ファイルの中にある"user"という行になります。ここにmysqlが設定されていれば、プロセスのオーナーがmysqlユーザで起動するはずです。

semaster
質問者

お礼

有難うございます。 「プロセスのオーナー」が正しい表現でした。失礼しました。 ちなみにですが、これを実現するには、OS側で事前にユーザとグループの作成、 およびディレクトリにパーミッションの付与が必須、という認識でよいでしょうか?。 <想定手順> 1.rootでRPMパッケージインストール 2.OSユーザとグループ作成 # groupadd mysql # useradd mysql 3.ディレクトリにパーミッションの付与 # chown -R mysql:mysql "mysqlディレクトリ" # chmod ・・・

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

mysql_install_db を利用してインストールすれば、自動でユーザーmysqlが設定されると 記憶していますが、ps で確認して実行ユーザーがmysqlになっていませんか?

semaster
質問者

お礼

有難うございました。 手順を再度見直したいと思います。

関連するQ&A

  • 現在MySQLの特権ユーザー(root)にパスワードが設定されているかどうか知る方法。

    シェルの超初心者です。 現在MySQLの特権ユーザー(root)にパスワードが設定されているかどうか知るには、どのようなコマンド(方法)を使えばよいのですか? サーバは、レンタルサーバです。 CentOS 5.3(Red Hat Enterprise Linux 5と別コマンドになる場合は、Redhatのコマンドも教えて下さい。) PHP 5.1.x MySQLの特権ユーザー(root)にパスワードを設定する方法は、下記サイトでわかりました。 http://y-kit.jp/saba/xp/mysqlsetup.htm#root よろしくお願いします。

  • MySQLでの権限付与について

    MySQLでrootの使用をなるべく避けるため DB作成、ユーザ作成などは違うユーザを作って行いたいですが、 権限を与えることはrootでしかできないと聞きました。 本当にMySQL内でgrant権限を持つユーザを作成するのはできないでしょうか?

    • ベストアンサー
    • MySQL
  • drop userコマンドを使って、MySQLのrootユーザを削除し

    drop userコマンドを使って、MySQLのrootユーザを削除してしまいました。ちなみに、OSはwindowsvistaです。 rootユーザーを削除してしまったがために、新たにデータベースを作成したりといったことができなくなってしまい非常に困っています。 どうすればいいかを教えて頂けますと幸いです。

  • drop userコマンドを使って、MySQLのrootユーザを削除し

    drop userコマンドを使って、MySQLのrootユーザを削除してしまいました。ちなみに、OSはwindowsvistaです。 rootユーザーを削除してしまったがために、新たにデータベースを作成したりといったことができなくなってしまい非常に困っています。 どうすればいいかをできる限り早急に教えて頂けますと幸いです。

  • MySQLにインストールについて

    お世話になっております。 Linuxを勉強しようと思い、VMwareエミュレータを使用してWindows上でCentosを動かしています。 そこで、PHPとApacheとMySQLが必要になったのでyumレポジトリからapache、Mysqlをインストール。PHPはソースをダウンロードしインストールしました。 MySQLのインストールで実行したスクリプト [root@localhost~#]yum -y install mysql mysql-server [root@localhost~#]vi /etc/my.cnf [mysqld] default-character-set = utf8 |_____この1行を追加しました。 [root@localhost~#]/etc/rc.d/init.d/mysqld start |_____MySQLの起動が確認できました。 [root@localhost~#]/usr/local/mysql/bin/mysql_install_db --user=mysql |_____MySQLの初期化を行いました。 [root@localhost~#]mysql -u root |_____ERROR 1045(28000):Access denied for user 'root'@'localhost'(Using Password:NO) というエラーが返されてしまいます。初期rootのパスワードは設定されていないと調べてわかったので、-pオプションはつけませんでした。 また、「my.cnf」ファイル内の[mysqld]フィールドに「skip-grant-tables」と追加記述しMySQLを再起動致しました。 するとログインできますが、rootユーザーのパスワードをアップデートしようと試みましたが、上記「「skip-grant-tables」とMySQLサーバが一緒に起動しています!とのエラーが出てしまい、結局rootユーザから接続できない状態です。 どなたか解決方法をご存知の方いらっしゃいましたら、アドバイスをお願い致します。

  • 誤って全てのユーザを削除してしまい、MySQLサーバに接続出来なくなってしまいました。

    さくらインターネットの専用サーバを使用している者です。OSはCentOS 5です。 また、LinuxコマンドやMySQLも使い始めて間もない初心者です。 明らかに手順がおかしいのですが、root@localhost等のユーザを全て削除した後、新しいユーザを作成しようとしていたら、うっかりexitしてしまい、MySQLサーバに接続出来なくなってしまいました…。 色々と調べてみて、以下のような手順を踏んで接続を試みても、繋がりませんでした。 ・/etc/my.cnfの [mysqld] を [mysqld --skip-grant-tables]に変更して上書きし、MySQLを再起動する ・mysql_install_dbを実行して、MySQLを再起動する ・/etc/php.d/にあるmysql.iniとmysqli.iniのバックアップを取ってから削除し、MySQLを再起動する 再起動は、/etc/rc.d/init.d/mysqld stop を実行してから /etc/rc.d/init.d/mysqld startを実行しておりました。 接続方法はいずれの方法でも以下のようにして行いましたが、結果は同じでした。 # mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) # mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) # mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) どのようにすれば、MySQLサーバに接続出来るようになるのでしょうか? 対策手段が分かる方がおられましたら、ご回答宜しくお願いいたします。

    • ベストアンサー
    • MySQL
  • mysqlのユーザパスワードについて

    mysqlのユーザパスワードについて こんばんわ。mysql初心者です。 現在、サーバ(Linux Fedora11)でyumコマンドからmysql(Server version: 5.1.45 Source distribution) をダウンロードしてインストールしています。 新しいユーザーを作って接続を試みたのですが出来ません。 原因を調査した結果、パスワードが設定出来ていないようです。 一連の作業を例として下記の通りです。 例)------------------------------------------------------------------------------- [root@fedora user]# mysql -u root mysql> grant all privileges on *.* to user@"%" identified by 'user' with grant option; mysql> grant all privileges on *.* to user@localhost identified by 'user' with grant option; mysql> select user,host,password from mysql.user; +----+-----------------+-----------------+ | user | host           | password        | +----+-----------------+-----------------+ | root | localhost        |             | | root | fedora.fedorasrv.com |             | | root | 127.0.0.1        |             | | user | localhost        | 1a486e7929011a28 | | user | #             | 1a486e7929011a28 | +----+-----------------+-----------------+ mysql> exit; [root@fedora user]# mysql -u user -p 1a486e7929011a28 Enter password: ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: NO) [root@fedora user]# mysql -u user ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: NO) [root@fedora user]# mysql -u user -p user Enter password: ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: NO) ---------------------------------------------------------------------------------- userユーザのパスワードが保護(?)なのか設定した内容と違います。 保護されたパスワードで打ってもノーパスワードで打っても設定したパスワードでも接続出来ません。 ちなみに他のユーザで作成しても保護されたパスワードです。 どのようにしたら設定した通りのパスワードが作成されるかご教授願います。

    • ベストアンサー
    • MySQL
  • mysqlのユーザパスワードについて

    mysqlのユーザパスワードについて こんばんわ。mysql初心者です。 現在、サーバ(Linux Fedora11)でyumコマンドからmysql(Server version: 5.1.45 Source distribution)をダウンロードしてインストールしています。 新しいユーザーを作って接続を試みたのですが出来ません。 原因を調査した結果、パスワードが設定出来ていないようです。 一連の作業を例として下記の通りです。 例)------------------------------------------------------------------------------- [root@fedora user]# mysql -u root mysql> grant all privileges on *.* to user@"%" identified by 'user' with grant option; mysql> grant all privileges on *.* to user@localhost identified by 'user' with grant option; mysql> select user,host,password from mysql.user; +----+-----------------+-----------------+ | user | host           | password        | +----+-----------------+-----------------+ | root | localhost        |             | | root | fedora.fedorasrv.com |             | | root | 127.0.0.1        |             | | user | localhost        | 1a486e7929011a28 | | user | #             | 1a486e7929011a28 | +----+-----------------+-----------------+ mysql> exit; [root@fedora user]# mysql -u user -p 1a486e7929011a28 Enter password: ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: NO) [root@fedora user]# mysql -u user ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: NO) [root@fedora user]# mysql -u user -p user Enter password: ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: NO) ---------------------------------------------------------------------------------- userユーザのパスワードが保護(?)なのか設定した内容と違います。 保護されたパスワードで打ってもノーパスワードで打っても設定したパスワードでも接続出来ません。 ちなみに他のユーザで作成しても保護されたパスワードです。 どのようにしたら設定した通りのパスワードが作成されるかご教授願います。

    • ベストアンサー
    • MySQL
  • DBD::Mysql が使用する標準のsocketはどこから得ているか?

    以下のようなスクリプトで、以下のようなエラーになっています。 port(socket)を指定しているにもかかわらず使用されない理由も分からないのですが、エラーメッセージのsocketはどこで設定されているのでしょうか? /etc/my.cnf で /tmp/mysql.sock を指定し、サーバーとクライアントは問題なく通信できています。 よろしくお願いします。 ■perlスクリプト ---------------------------------------- #!/usr/local/bin/perl use DBI; $user = 'usr'; $passwd = 'password'; $ds = 'DBI:mysql:db_name;host=localhost;port=/tmp/mysql.sock'; $db = DBI->connect($ds, $user, $passwd); (以下略) ■perlスクリプトのエラー ---------------------------------------- $ ./script_name.pl DBI connect('db_name;host=localhost;port=/tmp/mysql.sock','root',...) failed: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) at ./script_name.pl line 9 ■環境 ---------------------------------------- mysql:バイナリの(rpmでないやつ)4.0.24-standard OS:Linux 2.4.20-31.9(REDHAT) DBD:DBD-mysql-2.9004

    • ベストアンサー
    • Perl
  • mysqlが起動しなくなりました。

    LINUXでmysqlを使用してます。 誤って、mysqlのデータベースをdropしてしまいアンインストール後、再びインストールし、使用したところ下記の様になりました。以前はパスワード無しでもできたのですが、パスワードを求められたり・・・と変わってしまいました。3306のPORTはmysqlに割り振られてるのですが・・・。 # mysql ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO) # mysql -u root ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO) # mysql -p Enter password: ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES) # ps ax | mysqld 051007 11:31:57 Can't start server: Bind on TCP/IP port: Address already in use 051007 11:31:57 Do you already have another mysqld server running on port: 3306 ? 051007 11:31:57 Aborting 051007 11:31:57 mysqld: Shutdown Complete

    • ベストアンサー
    • MySQL