mysql-server-5.1のアップグレード時にapt-getがハングする


9

私が次のことをしようとすると:

sudo apt-get update
sudo apt-get upgrade

私のUbuntu Server 10.04インストールでは、次の行でハングします。

Preparing to replace mysql-server-5.1 5.1.41-3ubuntu12.1 (using .../mysql-server-5.1_5.1.41-3ubuntu12.3_i386.deb)

CTRL-Cもできません!セッションを終了して別の端末からログインしなければならず、アップグレードプロセスがまだ実行中です。何度か再起動しましたが、戻ってもう一度試すと次のように表示されます。

E: dpkg was interrupted, you must manually run 'sudo --configure -a' to correct the problem.

これを実行すると、1に戻り、mySQLをアップグレードしようとするとフリーズします。


1
そして、これもあなたでしょう... newyork.ubuntuforums.org/showthread.php?t=1514195
nik

2
@nik:そして?彼は2つの場所で1つの質問をするべきではありませんか?2箇所に投稿してもいいですか?あなたはグーグルの使い方を知っていることを示していますか?
msw 2010年

2
@msw、それは否定的なコメントや誇示ではありませんでした。実際、私は同様の問題への別の参照を見つけたと思ったが、そうではないことが判明した。
nik 06/10/21

@msw:クロスポスティングは...議論の余地があります。もちろん、それはあなたが答えを得る可能性を最大限にしますが、同じことに取り組んでいる異なる「チーム」もあり、おそらく同じ提案を思いついて、彼らの時間を無駄にしています。
Bobby

ここに投稿した理由は、ubuntuforums.orgで単一の応答が得られなかったためです。言うまでもなく、今後は技術リソースとして使用しません:)
Rob

回答:


2

データベースをバックアップした後、aptのレベルを下げてみてください。

sudo dpkg -r mysql-server
sudo apt-get check    # verify that apt's metadata is okay
sudo apt-get install mysql-server

追加

以来dpkg -r試みを窒息されdpkg --purge、パッケージと中身得ることができないdpkg -L mysql-server-5.1泥その後、ザップ彼らと約/var/lib/dpkg

毛むくじゃらごめんなさい。

最初はあなたが成功しない場合

私はここで声を出して考えて、許してください。mysql-serverメタパッケージには、次のパッケージが含まれている、または必要です。

libdbd-mysql-perl
libdbi-perl
libhtml-template-perl
libnet-daemon-perl
libplrpc-perl
mysql-client-5.1
mysql-client-core-5.1
mysql-server
mysql-server-5.1
mysql-server-core-5.1

パッケージ管理用のメタデータは楽しく分離されており、中央リポジトリがありますが、パッケージは独立しています。インストールされているファイルがライブ/var/cache/apt/archivesである場所*.debです。

最初に、dpkgにこれらのパッケージのことを忘れさせる(とにかく置き換える予定のいくつかのファイルの削除に失敗するリスクがある)。

for i in mysql-server-core-5.1 mysql-server-5.1 ... ; do
    sudo dpkg -r --force-remove-reinstreq $i
done

次に、フルインストールに必要な.debファイルを取得します。

sudo apt-get install --download-only mysql-server

次に、それらを1つずつインストールしてみます。

cd /var/cache/apt/archives
sudo dpkg -i mysql-server-core-5.1_5.1.41-3ubuntu12.3_i386.deb

そこに問題がある場合は、以下を試してください。

sudo dpkg -D77777 -i mysql-server-core-5.1... > 2>&1 /tmp/dpkg.log.$$

そして、ログファイルでジリオンから関連する行を見つけて、ここに投稿してください。幸運とgodspeed。


「dpkg -r mysql-server」を実行すると、インストールされていないと表示されます。だから私はそれから「dpkg -r mysql-server-5.1」を試してみて、それは言う:パッケージは非常に悪い矛盾した状態にあります-削除を試みる前にそれを再インストールするべきです。
Rob

「dpkg -r mysql-server-5.1」を試して失敗したと思いますか?
msw 2010年

ええ、それは失敗します。そこにあることは認識しますが、「パッケージの状態が非常に悪いため、削除する前に再インストールする必要があります」と表示されます。
Rob

「dpkg --purge」でも同じエラーが発生します。「dpkg -L mysql-server-5.1」でリストされたすべてのファイルを削除する必要がありますか?そして、/ var / lib / dpkgの "muck"とはどういう意味ですか?
Rob

次のフェーズを追加
msw

6

どうやら更新はサーバーが起動するのを待っていますが、何らかの理由でそうではありません。問題を解決するには、いくつかの可能性があります。

最も簡単:

  1. 新しいターミナルを開いて実行します:

    sudo services mysql start
    

より複雑ですが、時々必要です(これは、別の端末にアクセスできない場合に便利です):

  1. 「^ z」(Ctrl+ Z)を押すと、ジョブが「停止」します。次に実行します:

    sudo services mysql start
    
  2. サーバーが起動したら、次のように入力してEnterキーを押します。

    fg 
    

    これにより、「STOPPED」ジョブがフォアグラウンドに戻り、中断したところから続行されます。


私の場合、サーバーが起動するのを待っていました。
izak 2014

開始コマンドはすでに実行されていると言っていましたが、数秒以内にapt-getは問題なく続行しました。ありがとう
Liam Wheldon 2018年

2

これはVMのコピーであり、サーバーのIPアドレスを変更しましたが、my.cnfファイルのbind-addressは変更しなかったため、この問題が発生していました。bind-addressを一致するように変更すると、更新はハングせず、正常に完了しました。


1

同じ問題に直面し、デバッグに1日以上費やしました。

データベースディレクトリを削除したところ/var/lib/mysql/、インストールはスムーズに進みました。


2
それは注意が必要ですよね?
slhck

1

私はこの正確な問題を抱えていましたが、既存の解決策のどれも適切であるとは思われませんでした。アンインストールを強制することは* nixでは不要であるはずであり、KISSではありません。私の場合、原因は単純であることがわかりました。MySQLはまだ実行中であったため、開始を拒否しました!aptがMySQLを停止しようとしたとき、それはアクティブで実際には停止しませんでした。

いつものように、バックアップがあることを確認してください!

サービスを停止します。

sudo service mysql stop

サービスが実行されていないことを確認します。

sudo ps ax | grep mysql

まだ実行中の場合は、少し時間をかけてください。

sudo kill <pid>

しかし、結局のところ、それがまだ実行されている場合は、積極的に強制終了する必要があります。

sudo kill -9 <pid>

実行されていないことを確認したら、更新を続行できます。

更新が完了した後、特に-9を強制終了する必要があった場合は、mysqlcheckを実行して、サービスが停止しない原因がテーブルの破損や破損でないことを確認してください。また、定期的なバックアップがあることを確認してください(そして、それらのバックアップが実際に機能することを確認してください!)。


0

私の場合、既存の/etc/mysql/my.cnfに問題がありました。/var/log/mysql/error.logのエラーログを確認すると、次のことがわかります。

150112  5:45:47 [ERROR] Can't start server: Bind on TCP/IP port: Cannot assign requested address
150112  5:45:47 [ERROR] Do you already have another mysqld server running on port: 3306 ?
150112  5:45:47 [ERROR] Aborting

150112  5:45:47  InnoDB: Starting shutdown...
150112  5:45:52  InnoDB: Shutdown completed; log sequence number 0 1883376705
150112  5:45:52 [Note] /usr/sbin/mysqld: Shutdown complete

明らかにmy.cnfに別の問題がある可能性がありますが、私の場合は、古いIPアドレスにバインドしようとしていたということです。に変更:

bind 127.0.0.1

それを修正すれば問題なく起動します。

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