MySQLの安全な再起動方法とコネクションに関する問題

このQ&Aのポイント
  • MySQLの再起動方法で悩んでいます。処理が増えてきてメモリリークが発生しました。mysqladmin reloadは安全でしょうか?アドバイスをいただけますと幸いです。
  • MySQLの再起動方法について悩んでいます。処理が増えるとメモリリークが発生してしまいます。mysqladmin reloadは安全な方法でしょうか?アドバイスをいただけると助かります。
  • MySQLの再起動方法についてわからないことがあります。処理が増えるとメモリリークが発生してしまいますが、mysqladmin reloadは安全な方法でしょうか?アドバイスをお願いします。
回答を見る
  • ベストアンサー

MySQL の安全な再起動とコネクションに関して

MySQL の再起動方法で悩んでいます。 基本的には起動させたら再起動はしないのですが、最近になって処理が増えてきましたところ、メモリリークが発生するようになりました。 そこで、定期的に再起動を行いたいのですが、mysqladmin reload は安全なのでしょうか? Apache の apachectl graceful のように、子プロセスを終了させてから安全に再起動をさせたいのです。 また、mysqld の max_connections 設定は、一つのデータベースと複数のデータベースに対してと、どちらに対しての設定なのでしょうか? 結構調べたのですが、文献が発見できません。 大変恐縮ですが、アドバイスをいただけますと幸いです。 何卒よろしくお願いいたします。

  • MySQL
  • 回答数1
  • ありがとう数6

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

  • ベストアンサー
  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

mysqladmin reload は権限テーブルreloadだけ。 mysqldプロセスのリロードはかかりません。 正攻法で /etc/rc.d/init.d/mysql stop /etc/rc.d/init.d/mysql start とするしかないと思います。 P.S. Linux用RPM(MySQL-Server-4.0.20.i386.rpm)だと /etc/rc.d/init.d/mysql restart 出来るようです。

ikspiari
質問者

お礼

つまり、mysqladmin reload だとメモリリークは解放されないんですね。 とても参考になりました。 結局、正攻法の場合で、いきなりプロセスを KILL するのかが気になるのですが、まずはありがとうございました。

関連するQ&A

  • MySQLが起動できない

    さくらのVPSを借りて構築を行っています。 基本的にMySQLだけを導入して運営させていてしばらく問題もなかったのですが、 最近、Perlなどを導入して権限周りに色々悩まされていました。 で、何が原因かはわかっていないのですが、MySQLが起動できなくなりました。 /etc/rc.d/init.d/mysqld restart を行うと、停止は出来るのですが起動に失敗します。 /var/log/mysqld.log を見てみると、 InnoDB: The InnoDB memory heap is disabled InnoDB: Mutexes and rw_locks use GCC atomic builtins InnoDB: Compressed tables use zlib 1.2.3 InnoDB: Using Linux native AIO InnoDB: Initializing buffer pool, size = 128.0M InnoDB: Completed initialization of buffer pool InnoDB: highest supported file format is Barracuda. InnoDB: Waiting for the background threads to start InnoDB: 1.1.8 started; log sequence number 1595675 [ERROR] /usr/libexec/mysqld: Error writing file '/var/run/mysqld/mysqld.pid' (Errcode: 28) [ERROR] Can't start server: can't create PID file: No space left on device mysqld_safe Number of processes running now: 0 mysqld_safe mysqld restarted [Note] Plugin 'FEDERATED' is disabled. と書かれており、権限で起動が出来なくなってるのかと思い、 ls -ld /var/run/mysqld/ で調べてみると、 drwxr-xr-x 2 mysql mysql 4096 11月 1 23:52 /var/run/mysqld/ と、MySQLをインストールした時と同様に、ユーザーはmysqlのままでした。 一応、chown -R mysql:mysql /var/run/mysqld/ でもう一度設定しなおして再起動を試みましたが、起動のみやはり失敗して、同じエラーログとなっています。 Apacheの起動・停止は問題ありません。 OSはCentos5.7でApache2.2ですが、どうも権限周りの設定が良くわかっておりません。 どうにか再インストール無しでMySQLを起動させたいのですが、ご教示頂けますと幸いです。 宜しくお願い申し上げます。

    • ベストアンサー
    • MySQL
  • MySQLが起動しない

    このテーマの質問はいくつもあるのですが、解決に結びつくものがなく困っています。 もともと正常に動いていたのですが、再インストールしたところ起動しなくなりました。 再インストールは「yum -y install mysql-server」で行いました。 いろいろと試してはいるのですがうまくいきません。 どなたかお分かりの方がいらっしゃいましたら、ご教授いただけますでしょうか。 よろしくお願いします。 --------------------------  エラーログ -------------------------- 110709 16:46:38 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 110709 16:46:38 [Note] Plugin 'InnoDB' is disabled. 110709 16:46:38 [Note] Plugin 'FEDERATED' is disabled. 110709 16:46:38 [ERROR] Unknown/unsupported storage engine: InnoDB 110709 16:46:38 [ERROR] Aborting 110709 16:46:38 [Note] /usr/libexec/mysqld: Shutdown complete 110709 16:46:38 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended --------------------------  my.cnf -------------------------- [mysqld] skip-innodb max_connections=30 datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock bind-address=127.0.0.1 # Default to using old password format for compatibility with mysql 3.x # clients (those using the mysqlclient10 compatibility package). old_passwords=1 [mysql.server] user=mysql sort_buffer=512 net_buffer_length=8 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid --------------------------  php.ini (一部抜粋) -------------------------- mysql.default_socket = mysql.default_host = mysql.default_user = mysqli.default_port = 3306 --------------------------  サーバー環境 -------------------------- OS: Red Hat Enterprise Linux ES release 4 MySQL: MySQL: 5.5.9-2 [ファイル構成] /var/run/mysqld/mysqld.pid /var/lib/mysql/mysql.sock ※上記のファイルは所定のディレクトリだけでなく、サーバー上に存在しません。 /var/lib/mysql  -mysql/  -performance_schema/  -test/

  • Postfixをインストールしたら、MySQLが起動しなくなった

    いつもお世話になっております。 Linuxの環境構築を行っているのですが、MySQLをインストール後、Postfixをインストールしたところ、MySQLが起動しなくなってしまいました。 具体的な手順としては、 mysqld_safe & として、MySQLサーバを起動し、その後確認のために mysqladmin ping とコマンドを入力してみると、 mysqladmin: connect to server at 'localhost' failed error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)' Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists! とのエラーメッセージが出力されます。 自分なりに調べたところ、Postfixをインストールすると、/etcの中に勝手にmy.cnfが出来るらしかったので、とりあえずmy.cnfを別の名前にして、Linuxを再起動してみたのですが、同じ現象でした。 何か解決策がお分かりでしたら、教えて下さい。 宜しくお願い致します。 環境は、以下のとおりです。 OS:CentOs 5.3 MySQL:5.1.35 Postfix:2.3.3 MySQLはソースファイルから、Postfixはyumコマンドにてインストールしました。

    • ベストアンサー
    • MySQL
  • MySQLでパスワードを設定したら、使えない

    XAMPPを使って、AppacheとMySQLなどをインストールしました。 MySQLは順調に動いていたのですが、 rootユーザーにpasswordを設定するつもりで、mysqlデータベースのuserテーブルのlocalhost/rootのレコードにパスワードを設定して、flush privilegeを実行しました。 一度、xamppコントロールパネルからmysqlAdminを再起動したところ、今まで使っていたデータベースが使えなくなりました。 どうすれば使えるようになりますか? 初心者です。すみません。よろしくお願いします。

  • MySQLの導入

    VineLinux上にApache,PHP,MySQLを構築しています。 Apache,PHPまではブラウザで表示させられるようになりましたが MySQLの導入で /etc/my.cnf を設定後 # /etc/init.d/mysql restart Killing mysqld with pid 2297 Wait for mysqld to exit done となってしまいました。 どのように解決したらよろしいでしょうか。 ご指導お願い致します。

  • MySqlの初期設定 RedhatLinux9

    RedhatLinux9 で アパッチ、PHP, Mysql、FTPをインストール時に選択してインストール(Webサーバーに必要な最小限)したのですが、MySqlがどうしてもうまく動いてくれません。 Mysqlに関して、 いろいろGoogleやらOKWEBなどで調べたのですが、うまく動かないようです。 /var/lib/mysql で設定されているようで、 sqlをスタートさせると下記のようなメッセージがでます。 [root@www mysql]# /usr/bin/safe_mysqld & [1] 2214 [root@www mysql]# Starting mysqld daemon with databases from /var/lib/mysql 031023 13:54:59 mysqld ended [1]+ Done /usr/bin/safe_mysqld となり、 次にmysqlのユーザーを作ろうとするとエラーがでてしまします。 mysql_install_db --user=mysql と入力すると 下記のようなエラーがでます。 /usr/bin/mysqladmin -u root password '*****' /usr/bin/mysqladmin: connect to server at 'localhost' failed error: 'Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)' Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists! /var/lib/mysql/mysql.sock は、存在しているのですが、、、、、 sqlに関しては、 mod_auth_mysql-1.11-12 php-mysql-4.2.2-17 mysql-3.23.54a-11 mysql-server-3.23.54a-11 が、インストールされているようです。 どうしても解決できないのです。 よろしくお願いします。

  • MySQL セーフモード起動のエラーについて

    こんにちは MySQLにてrootパスワードの再設定を行うために、mysqld停止後、 セーフモードで起動をしようとしています。 最終的に起動でき、パスワード再設定もできるのですが その際発生するエラーの意味がわからず、困っています。 最終的に行いたいことができるので結果問題ないのですが 作業内容を履歴として残し、部内に説明責任があるため、把握が必要となります・・。 ■環境 CentOS release 5.3 (Final) mysql-5.0.77-3.el5 ■セーフモードでの起動 を実行 //----------------ここから-- [root@example ~]# /usr/bin/mysqld_safe --user=root --skip-grant-tables & mysql mysql [1] 26336 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) [root@example ~]# Starting mysqld daemon with databases from /var/lib/mysql //---------------ここまで-- ■この時点でmysqlのプロセスは起動しており、/var/lib/mysql/mysql.sockファイルも存在しています。 [root@example ~]# ps -ef |grep mys root 26336 25938 0 19:24 pts/0 00:00:00 /bin/sh /usr/bin/mysqld_safe --user=root --skip-grant-tables mysql 26373 26336 1 19:24 pts/0 00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=root --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock --skip-grant-tables root 26391 25938 0 19:24 pts/0 00:00:00 grep mys ■2回目実行 //----------------ここから-- [root@example ~]# /usr/bin/mysqld_safe --user=root --skip-grant-tables & mysql mysql [2] 26394 Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.0.77 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> A mysqld process already exists mysql> //----------------ここまで-- 1度目でエラーとなるのはなぜでしょうか・・。 また"& mysql mysql"で実行されている内容が恥ずかしながらわかっていません・・。 あわせてご教示いただけますと助かります。

  • MySQL 新規パスワード

    MySQLの新規パスワードが設定出来ません。 Mac OSなのですがMySQLのインストール自体は恐らく出来たのですが ターミナルにて新規パスワード設定をしたく 「mysqladmin -u root password 'newpassword' -p」 とコマンドを打ったのですが 「-bash: mysqladmin: command not found」 と返ってきます。 MySQLのパスワードを新規設定するにはこれでよろしいのでしょうか? MAMP自体は起動させておいてあって システム環境設定にてMySQLサーバーのスタートはしてあって ターミナルのカレントディレクトリは一番上(元の場所)に恐らくあるのですが mysqladmin -u root password 'newpassword' -pと打つと -bash: mysqladmin: command not foundと返ってきて困っています。 新規パスワードを設定するに当たって何か間違いがあるでしょうか?

  • MySQLが起動しない

    現在、MySQL4.0.25をFreeBSD 4.7にportsを使ってインストールしています。 以前MySQL4.1を使っていたのですが、文字化けの問題に直面したため、安全のため4.0へ切り替えることにしました。 MySQL4.1をアンインストールし、portsから4.0.25をインストールしたところ、起動スクリプトを叩いても起動しません。 DBデータディレクトリに、ドメイン名.errというファイルが出来ており、その中に /usr/local/libexec/mysqld; unknown option'--old-passwords' というメッセージが出ていました。 完全削除、再インストールということを2回ほど繰り返しましたが、結局解決できていません。 どなたか解決法をご存じの方がいらっしゃいましたら、回答をお願いいたします。

    • ベストアンサー
    • MySQL
  • ソケットエラーについて(PHP+MYSQL)

    過去ログもたくさんでていたのですが、解決しないので質問します。 PHPとMYSQLを連動させて使用したいのですが、わからないなりにサーバーの設定しています。 Fedora Core3 PHP Version : 4.3.11 Apache Version : 2.0.53 MYSQL 5.0.24a で設定しています。 PHP単体では動いています。 MYSQLもターミナル上では動いています。 PHPからの動かすと DB Error: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13) と出たので、 mysqldをもう一度起動してみたり php.iniを /tmp/mysql.sock に変更してApacheを再起動したり my.cnfも同じ値にしているのですが (mysql.socは/tmp/にある) エラーが DB Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (13) に切り替わっただけでした。 mysqldが動いていないのかなーとも思うんですが どこから手をつけていいのかわからなくなっています。 ひとつ気になるのが、PHPのテストファイルで取得したinfoの MYSQLの 項目で MYSQL_SOCKET /var/lib/mysql/mysql.sock と出ていました。 これって関係あるんでしょうか。 別の設定があるのでしょうか・・・ それともやっぱりmysqldをあたってみたらいいのか。 みなさんのご意見をお聞かせいただければ幸いです。 あと参考になるような本があれば教えてください。 よろしくお願いします。