/etc/apt/sources.list
で「squeeze」を「unstable」に置き換えて、debiansqueezeからunstableにアップグレードしようとしました。 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
からのみです。
これを試して:
Sudo cat /etc/mysql/debian.cnf
そして、[client]
セクションと[mysql_upgrade]
セクションの両方にリストされているパスワードを探します
mysql -u root -p password
は元のMySQLルートパスワードです
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '*the password obtained from step 1*';
/etc/init.d/mysql restart
それが修正であり、興味があれば this がその背後にある理由です。
答えの更新。ステップ3では、使用する必要がありました
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'the password obtained from step 1';
「ON」以降はアスタリスクが付いています。 MySql5.1で働いた
MySQLリファレンスマニュアル says これを行うことができます:
mysqld
サーバーが実行されているUnixユーザーとしてシステムにログオンします(たとえば、mysql
)。.pid
ファイルを見つけます。このファイルの正確な場所と名前は、ディストリビューション、ホスト名、および構成によって異なります。一般的な場所は、/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であるファイルの内容を返します。