UbuntuでMySQLのインストールと削除に問題がある


26

ubuntu15.04に部分的にインストールされたmysql-server-5.6のインストールまたは削除に問題があります。私が得ているエラーは

$ sudo apt-get -f install 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  mysql-server-5.6
The following packages will be upgraded:
  mysql-server-5.6
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
22 not fully installed or removed.
Need to get 0 B/5,501 kB of archives.
After this operation, 50.8 MB of additional disk space will be used.
Do you want to continue? [Y/n] 
Preconfiguring packages ...
Setting up mysql-common (5.6.24-0ubuntu2) ...
update-alternatives: error: alternative path                 /etc/mysql/my.cnf.fallback doesn't exist
dpkg: error processing package mysql-common (--configure):
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 mysql-common
localepurge: Disk space freed in /usr/share/locale: 0 KiB
localepurge: Disk space freed in /usr/share/man: 0 KiB
localepurge: Disk space freed in /usr/share/gnome/help: 0 KiB
localepurge: Disk space freed in /usr/share/omf: 0 KiB
localepurge: Disk space freed in /usr/share/doc/kde/HTML: 0 KiB

Total disk space freed by localepurge: 0 KiB

E: Sub-process /usr/bin/dpkg returned an error code (1)

誰かがこれを手伝ってくれますか?


削除することができ、できればクリーンな再インストールがうまくいくと思います。
vembutech

私はこのプロセスを試しましたが、まだ問題があります。つまり、mysqlサーバーをアンインストールまたは再インストールすることができます
Shameerariff

1
問題の原因を見つけるために、最善を尽くしました。aptステータスファイルからデータを削除し、aptを更新しました。システムでlibgcc1 libc6の問題が発生していることがわかりました。私は、私の発見に基づいてステータスを投稿し続ける問題を解決しようとしています。
シャメラリフ

回答:


55

パージを実行してから、再インストールしてください。

sudo apt-get remove --purge mysql-\*
sudo apt-get install mysql-server mysql-client

アップデート04.09.2018:
MySQLプロセスがライブであるためにアンインストール/インストールに問題がある場合は、最初にこれを試してから上記を試してください:
sudo kill $(pgrep mysql)


私はこのプロセスを試しましたが、まだ問題があります。つまり、mysqlサーバーをアンインストールまたは再インストールすることができます
Shameerariff

元の指示ではメタパッケージが削除されましたが、これは何もしませんでした。新しい編集された命令は、16.04で機能します。
-mrm

エレメンタリーOSで私のために働いた。
MChaker 16

2
これは、mysqldを実行しているすべての種類にkillシグナルをチェックして送信した後にのみ機能しましたps -aef | grep mysql
チャーニーケイ

12

私(Linux初心者)が掘り下げなければならなかった非常に簡単な解決策は、ファイルを作成することです。

nano /etc/mysql/my.cnf.fallback

mysql-common 5.7.11-0ubuntu6パッケージのデフォルトのコンテンツを入力します。

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

!includedir /etc/mysql/conf.d/

見つかっapt-browse.orgで、ここで


これは、ブルートフォースアプローチを使用せずに実際の問題を修正するため、他よりも優れた回答です。
デビウス

私の場合touch /etc/mysql/my.cnf.fallback、問題を乗り越えました。
オルダーズ

9

パージ/再インストールも機能しませんでした。次の「解決策」を見つけました。

/のmysql.cnf.fallback「提供されたファイル」にリストされていないか、ファイルに関する追加情報が見つかりませんでした。mysql-server-5.6mysql-client-5.6

コピー/etc/mysql/my.cnfしました/etc/mysql/my.cnf.fallback(これは比較的重要度の低い「フォールバック」設定ファイルだったと推測して)。

/etc/mysql/my.cnfはシンボリックリンクであるため、次のようにls /etc/mysql表示されます。

 my.cnf.fallback -> /etc/alternatives/my.cnf
 my.cnf -> /etc/alternatives/my.cnf

その後、パッケージのインストールはエラーなしで完了しました(おそらく「存在しない」問題は「解決済み」だったため)。

私は(まだ)悪影響に遭遇していません。


これは素晴らしいように聞こえますが、問題の理由を説明できますか?
シャミエリフ

5

mysql-server(5.7.14)をパージしようとしたときに同じ問題が発生しました。

my.cnf *ファイルが欠落している場合、パッケージmysql-commonを再インストールできます。その後、両方をパージできますmysql-server&mysql-common

これらのmy.cnf *ファイルはmysql-commonパッケージに属しています(以下を参照)。

$ dpkg -L mysql-common | grep cnf
/etc/mysql/my.cnf.fallback
/etc/mysql/conf.d/mysql.cnf


1. mysql-commonを再インストールします

apt-get install --reinstall mysql-common

  1. mysql-commonのパージ

apt-get purge mysql-common


1

/etc/mysql/フォルダーを確認したところ、空のサブフォルダー以外は完全に空であることがわかりましたconf.d

cd /etc/
# you need to delete the empty mysql folder otherwise the ln below creates the link inside the existing mysql folder
sudo rm -r mysql
sudo ln -s ./mysql.bak/ mysql

その後(このリンクこのリンクの礼儀)

sudo dpkg --configure -a

そして今、すべてが正常に表示されます。

上記のリンクも言及して--force-dependsいますが、私はこれを必要としませんでした。それも言及してapt-get -f installいますが、私はこれを必要としませんでした。


これはまさに私の問題でした。これは私のためにそれを修正しました。
デイブキンケイド

0

コメントでcharneykayeが述べたようmysqlに、バックグラウンドでいくつかのプロセスがある場合、このアプローチは失敗する可能性があります。私が使用した:

emil-mint-desktop ~ # ps -aef | grep mysql
root      6682     1  0 16:45 ?        00:00:00 sudo mysqld_safe --skip-grant-tables
root      6683  6682  0 16:45 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --skip-grant-tables
mysql     7046  6683  0 16:45 ?        00:00:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --skip-grant-tables --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306 --log-syslog=1 --log-syslog-facility=daemon --log-syslog-tag=
root     21046  9812  0 17:32 pts/5    00:00:00 grep --color=auto mysql

次を使用して、最初の3つのプロセスを終了しました(最後のプロセスはgrep呼び出し自体です!)。

kill -9 6682 8883 7046

次に、mysql関連するすべてを削除します。

apt remove --purge mysql-\*
apt autoremove
apt autoclean

次にインストールします:

apt install mysql-server

それはうまくいきました。

バージョン:

  • ミント18.1(Ubuntuベース)。他のバージョンの代わりにapt使用する必要がありapt-getます。

0

そのための簡単な解決策を見つけました。

最初の一歩: apt-get install mysql-common --reinstall

第二段階: apt-get install mysql-server --reinstall

そしてそれは動作します!


0

上記のすべての答えを試した後、次の方法でこの問題を解決できました。

sudo rm /etc/rc5.d/S03mysql

その後、実行することができました:

sudo apt purge mysql-server mysql-server-5.7 mysql-server-core-5.7

sudo apt-get -f install mysql-server --fix-missing --fix-broken

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