• ベストアンサー
  • 暇なときにでも

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"で実行されている内容が恥ずかしながらわかっていません・・。 あわせてご教示いただけますと助かります。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数3349
  • ありがとう数1

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

  • ベストアンサー
  • 回答No.1
noname#246547
noname#246547

>また"& mysql mysql"で実行されている内容が恥ずかしながらわかっていません・・。 この部分を理解していないことが原因です /usr/bin/mysqld_safe --user=root --skip-grant-tables & mysql mysql はサーバプロセス(mysqld_safe)とクライアントプロセス(mysql)を同時に起動しようとしています よって、最初のエラーはサーバプロセスが起動しきる前に、クライアントプロセスが起動してしまい、クライアントプロセスがサーバに接続できずにエラーを吐いています 2回目は、サーバプロセスを終了せずに同じコマンドを実行したため、クライアントプロセスがサーバに接続できたためエラーとならなかったと思われます /usr/bin/mysqld_safe --user=root --skip-grant-tables & このコマンドでサーバが起動したことを確認した後 mysql mysql このコマンドでクライアントを起動してください コマンドは理解して使いましょう

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございました。 ご指摘いただいたとおり、意味もわからずコマンドを使うなんて もってのほかですね。まず、確認すべき点を取り違えていたようです。 アドバイスいただいた点、大変参考になりました。 起動を確認した後、クライアントの起動を行うことで エラーにならず、正常動作が確認できました。 重ねての御礼となりますが、ありがとうございました。

関連するQ&A

  • MYSQLの起動オプション

    FreeBSDでMySQLを運用しております。 何かのミスで起動オプションが下記のように変更になってました。 /bin/sh /usr/local/bin/mysqld_safe --user=root --skip-grant-tables セキュリティ的に問題がありますのでデフォルトに戻したいのですが、どのようにして戻せばよいでしょうか?ネットで検索したのですが、見当たらなかったので質問させてもらいました。 基本的な知識かと思いますが、宜しくお願いします。

    • ベストアンサー
    • MySQL
  • 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 が、インストールされているようです。 どうしても解決できないのです。 よろしくお願いします。

  • インストール・初期化後、初起動でエラー

    インストール・初期化後、初起動でエラー OS : CentOS 5.3 MySQL 5.0.89 をソースからインストール rootユーザにて # /usr/local/mysql/bin/mysqld_safe --user=mysql & [root@localhost mysql]# Starting mysqld daemon with databases from /usr/local/mysql/var STOPPING server from pid file /usr/local/mysql/var/localhost.localdomain.com.pid 100114 20:02:07 mysqld ended エラーログをみる # cat var/localhost.localdomain.com.err ... /usr/local/mysql/libexec/mysqld: Can't create/write to file '/usr/local/mysql/var/ib6TIfDM' (Errcode: 13) 100114 20:02:07 InnoDB: Error: unable to create temporary file; errno: 13 100114 20:02:07 [ERROR] /usr/local/mysql/libexec/mysqld: Can't create/write to file '/usr/local/mysql/var/localhost.localdomain.com.pid' (Errcode: 13) 100114 20:02:07 [ERROR] Can't start server: can't create PID file: Permission denied 100114 20:02:07 mysqld ended /usr/local/mysql/var の所有者・権限は、mysql:mysql 700で "# /usr/local/mysql/bin/mysqld_safe --user=mysql &" は mysqlユーザで起動するという意味ですよね(?) /usr/local/mysql/my.cnf の [mysqld] には、 tmpdir = /usr/local/mysql/var/ を書いてます。 my.cnf は /etc/my.cnf にあります。 なぜ書き込めないのでしょうか? どなたかご教示お願い致します。 因みに、これは関係ないと思いますが、 /usr/local/mysql の所有者・権限は root:mysql 700 です。

    • ベストアンサー
    • 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/

  • MySQLインストール

    こんにちは。 RedhatLinux7.1を使っています。 mysql-3.23.52をソースからインストールしたのですが、 うまく動きません。 ユーザーmysqlになって $ /usr/local/mysql/bin/mysql_install_db --user=mysql をしたあとに $ /usr/local/mysql/bin/safe_mysqld --user=mysql &  とすると [1]2758 $Starting mysqld daemon with database from /var/lib/mysql 020925 15:11:24 mysqld ended となります。 また、 $ mysql としたら ERROR 2002:Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) となります。  あとでわかったのですが、ディストリビューション付属でmysqlがすでに入っていたようです。 二つmysqlが入っているためにうまくいかないのでしょうか? どのように対処すれば解決するか教えてください。 Linux初心者です。 お願いします。

  • 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ユーザから接続できない状態です。 どなたか解決方法をご存知の方いらっしゃいましたら、アドバイスをお願い致します。

  • solaris10でのMySQLの設定について

    README.solaris.mysqlの内容に沿ってMySQLをインストールしました。 # /usr/sfw/bin/mysql_install_db # groupadd mysql # useradd -g mysql mysql # chgrp -R mysql /var/mysql # chmod -R 770 /var/mysql # installf SUNWmysqlr /var/mysql d 770 root mysql # cp /usr/sfw/share/mysql/my-medium.cnf /var/mysql/my.cnf そして、 # /usr/sfw/sbin/mysqld_safe --user=mysql & とmysqlを立ち上げましたが、その後 # mysql -A -u root mysql としても[mysql:見つかりません。]となってMySQLに接続することが出来ません。 ps-efで起動している状態をみると、 /bin/sh /usr/sfw/sbin/mysqld_safe --datadir=/var/mysql --pid-file=/var/mysql/so となっています。 MySQLに接続する方法について、 どなたかご教授くださるようお願いします。 よろしくお願いします。

  • サーバ構築しています。https導入のため、SSLをyumでいれました

    サーバ構築しています。https導入のため、SSLをyumでいれました。そしたら、mysqlを起動できなくなってしまいました。起動できなくて困っています。原因ご教授お願いします。 大学の授業でfedora12でサーバ構築しています。現在、apache,mysql,phpをインストールしています。HTTPSでWebサーバにアクセスできるようにするためにSSLをyumでインストールすることになりました。インストールしたはいいのですが、今度はapache,mysqlが起動できなくなってしまいました。apacheは無事起動することができたのですが、mysqlはできません。 # /usr/local/mysql/bin/mysqld_safe &と入力すると # 100508 23:12:17 mysqld_safe Logging to '/var/log/mysqld.log'. chown: ユーザ指定が不正: `mysql' 100508 23:12:17 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 100508 23:12:18 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended とエラーがでてしまいます。そこで /usr/local/mysql/bin/mysqld_safe --user=rootroot &と入力すると # 100508 23:12:28 mysqld_safe Logging to '/var/log/mysqld.log'. 100508 23:12:28 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 100508 23:12:28 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended と今度はエラーがでてしまいます。どうすれば、再び起動することができるのかわからず困っています。 原因などわかれば、ご教授お願いします。

  • LinuxでMySQLが起動しません(初心者です)

    OSはSentOS5を使用しています。 MySQLを起動しようとすると下記のように起動後すぐにストップしてしまいます。 ちなみに/usr/local/mysql/var/には「2.0.168.192.in-addr.arpa.pid」というファイルはありません。 変わりに「2.0.168.192.in-addr.arpa.err」というファイルがあります。 これがエラーが起きているのでしょうか? # /usr/local/mysql/bin/mysqld_safe --user=mysql Starting mysqld daemon with databases from /usr/local/mysql/var STOPPING server from pid file /usr/local/mysql/var/2.0.168.192.in-addr.arpa.pid 080109 18:41:48 mysqld ended

  • 助けてください。Xampp MySQLへログインできなくなってしまいました。

    お世話になります。 XampでMySQLを扱おうと悪戦苦闘中です。 サイト http://homepage1.nifty.com/gak/webdb/mysql.html と、 書籍 PHPによるWebアプリケーションスーパーサンプル第2版 p.740 を参考にしながら行いました。 最初 c:\zampp\mysql\bin>mysql -u root で、mysqlへ入れました。 そして、パスワードを設定しました。 mysql> use mysql Database changed 次にrootユーザーパスワードの設定をしました。 mysql> update mysql.user set password='****' where user='root'; Query OK, 1 row affected (0.03 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> 次に、mysqladminでもパスワードの設定ができるということが記載されていたので、一端MySQLをExitして、試してみました。 C:\xampp\mysql\bin>mysqladmin -u root password '**' mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)' と、いう結果でした。 どうも受け付けられなかったようです。 そして、再度MySQLへ入ろうと C:\xampp\mysql\bin>mysql -u root -p Enter password:****** ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using passwordO) となってログインできなくなってしまいました。 Enter password: で、先ほど設定したパスワードを入力しています。 MySQLのパスワードを忘れた場合は、という記載もありまして、 「--skip-grant-tables オプションを指定してmysqldを起動」 と、いうことでしたので以下のように実行してみましたが、やはりダメでした。 C:\xampp\mysql\bin>mysqld --skip-grant-tables C:\xampp\mysql\bin>mysql -u root ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password O) もう、お手上げです。 おわかりになる方見えましたら、なにとぞよろしくお願いします。 コマンド出力は記録をとりながら行っていたので、こうして記載もできました。

    • ベストアンサー
    • MySQL