DebianでMySQLサービスを停止できないのはなぜですか?


11

で「squeeze」を「unstable」に置き換えることで、debian squeezeからunstableにアップグレードしようとしました/etc/apt/sources.list。MySQLを停止できなかったため失敗したMySQLを除いて、アップグレードはスムーズに進みました。

/etc/init.d/mysql stop単に失敗したことを返しますが、ステータスを取得しようとすると、/etc/init.d/mysql status次のエラーが発生します。

me@debian:~$ sudo /etc/init.d/mysql status
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

MySQLは正常に動作しており、phpmyadminでdebian-sys-maintの権限を確認したところ、すべての操作が許可されていますが、からのみ接続できますlocalhost

回答:


6

これを試して:

  1. sudo cat /etc/mysql/debian.cnfそして両方の下にリストされているパスワードを探し[client][mysql_upgrade]セクション

  2. mysql -u root -p password 元のMySQLルートパスワードであること

  3. GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '*the password obtained from step 1*';

  4. /etc/init.d/mysql restart

それが修正であり、興味があればこれが背後にある理由です。


下記のとおり、これはGRANT ALL PRIVILEGES ON *.*
Dave

2

答えの更新。ステップ3では、

GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'the password obtained from step 1';

「ON」の後の期間の周りにアスタリスクがあります。MySql 5.1のために働いた


1

MySQLリファレンスマニュアルこれを行うことができると言います:

  1. mysqldサーバーの実行に使用しているUnixユーザー(例えば、mysql)としてシステムにログオンします。
  2. .pidサーバーのプロセスIDを含むファイルを見つけます。このファイルの正確な場所と名前は、ディストリビューション、ホスト名、および構成によって異なります。一般的な場所は/var/lib/mysql//var/run/mysqld/、と/usr/local/mysql/data/。通常、ファイル名には拡張子が.pidあり、mysqldまたはシステムのホスト名のいずれかで始まります。

次のコマンドで.pidファイルのパス名を使用して、mysqldプロセスに通常のkill(kill -9ではない)を送信することにより、MySQLサーバーを停止できます。

    kill `cat /mysql-data-directory/host_name.pid`

この部分:cat /mysql-data-directory/host_name.pidプロセスIDであるファイルの内容を返します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.