Mysql-serverをインストールしようとすると、次のようなエラーが発生します。
dpkg: error processing package mysql-server (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
mysql-server-5.7
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
どういう意味ですか。何か案は?
dpkg
がエラーコード1を返すことは、特定の意味ではありませんが、通常、依存関係の問題に関係しています。あなたの場合、同じパッケージの2つのバージョン/インスタンス、つまりmysql-server
とmysql-server-5.7
をインストールしようとしました。したがって、次のようにして、冗長な依存関係の問題を削除し、機能しているmysqlパッケージをインストールします。
Sudo apt-get clean
Sudo apt-get purge mysql*
Sudo apt-get update
Sudo apt-get install -f
Sudo apt-get install mysql-server-5.7
Sudo apt-get dist-upgrade
これで問題は修正されます。ただし、将来的には、Sudo apt-get install
の後に追加するパッケージ名に注意してください。リスト内の冗長なエントリなど、パッケージ名の間違ったリストは、パッケージのインストールに失敗するか、さらに悪いことになるためです。 #DEPENDENCY-HELLの地獄のような深さをさまよいます
VPSまたは類似のものを使用している場合、エラーはRAMの不足が原因である可能性があります。
Apt-upgradeを実行するには、RAMがいくらか必要なようです。そのため、mysqlが強制的に閉じられ、エラーから回復する問題が発生する可能性があります。
試してください:
1)apt-upgradeの前にmysqlを手動で停止します
Sudo /etc/init.d/mysql stop
2)修正:
Sudo dpkg --configure mysql-server-X.X
(バージョンが不明な場合は、mysql-serverを使用して見つける(エラーは修正されません)
3)チェック:
Sudo apt-get upgrade
Aptによって開始されなかった場合は、mysqlを手動で開始します。
これは役立つはずです
Sudo apt-get purge mysql*
Sudo apt-get autoremove
Sudo apt-get autoclean
Sudo apt-get dist-upgrade
そして今mysqlを再インストールします
Sudo apt-get install mysql-server
askubunt からの私の回答。
apt
メソッドのどれも私にとってうまくいきませんでした、これを試してください:
ロックプロセスの検索
$ ps -eaf
root 7316 1 0 00:19 ? 00:00:00 /usr/bin/dpkg --status-fd 35 --configure --pending
root 7808 7316 0 00:19 ? 00:00:00 /usr/bin/Perl -w /usr/share/debconf/frontend /var/lib/dpkg/info/mysql-se
root 7817 7808 0 00:19 ? 00:00:00 /bin/bash /var/lib/dpkg/info/mysql-server-5.7.postinst configure
mysql 7973 7817 0 00:20 ? 00:00:00 mysqld --user=mysql --init-file=/var/lib/mysql-files/tmp.iNyY06ty0K --so
殺す
行う Sudo kill -9 7973
、基本的にはmysql
です。
パージ中
Sudo apt-get purge mysql-server-5.7 # Or whatever you are trying to purge.
同様の問題がありました。これが私の修正方法です。
Sudo service mysql restart
Sudo apt install -f
この質問に対して私が見つけた答えはすべて、「Mysqlのインストールを削除して再インストールする」という形式でした。しかし、私の場合、私はすでに機能している/アクティブなMysqlインストールを持っています。私にとって、dpkg --configure -a
が失敗する理由は、Mysqlがすでにインストールされているためです。インストール済みでアップグレード済みのMysqlに対してpostinstallスクリプトを実行する必要があるとdpkgが判断する理由は、私にはわからないかもしれませんが、そうです。
かなりの時間をかけて回答を探した後、Mysql 5.7がすでに機能していて、この偽のポストインストールスクリプトを回避したい人が他にいる場合に機能する解決策を見つけました。 (Ubuntuで)postinstallスクリプトを直接編集できます。
Sudo vi /var/lib/dpkg/info/mysql-server-5.7.postinst
次に、2行目でexit 0
を追加してから、もう一度dpkg
を実行すると、次のようになります。
$ Sudo dpkg --configure -a
Setting up mysql-server-5.7 (5.7.28-0ubuntu0.18.04.4) ...
Mysqlのインストールが以前に完了していない場合は、必ずこれらの手順を実行する必要はありません(postinstallスクリプトが実行を要求する理由があります)。しかし、私がそうであるように、不安定な状態のdpkgで終了する可能性のある人にとっては、上記の方法で、すでに動作しているバージョンのMysqlをパージして再インストールする時間を大幅に節約できます。
Debian 10で作業している場合は、最初にGNUPGをインストールする必要があります。
Sudo apt-get install gnupg
それで全部です;これでdpkg
をもう一度試すことができます。
依存関係の問題を解決するには、次を試してください:
Sudo apt-get purge
Sudo apt-get clean
Sudo apt-get check
そして、パッケージを再インストールします:Sudo apt-get install mysql-server
。
ソース: スレッド:Dpkg:依存関係の問題-未構成のまま 。
試す他のコマンド:
Sudo apt-get install -f
Sudo apt-get autoremove
Sudo dpkg --configure -a
関連: dpkg依存関係を解決するにはどうすればよいですか? atAsk Ubuntu。
問題ははるかに単純になる可能性があります(私の場合)。構成ファイル[my.cnf]で誤って構成された値があったため、エラーが発生しました。 my.cnfをクリーンアップした後、mysql-serverは正常に再起動されました