มีปัญหาในการติดตั้งและลบ MySQL ใน Ubuntu


26

ฉันมีปัญหาในการติดตั้งหรือลบ mysql-server-5.6 ที่ติดตั้งบางส่วนใน ubuntu15.04 ข้อผิดพลาดที่ฉันได้รับคือ

$ 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 ฉันพยายามที่จะแก้ปัญหาจะโพสต์สถานะตามการค้นพบของฉัน
Shameerariff

คำตอบ:


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

คำแนะนำดั้งเดิมลบ metapackage ซึ่งไม่ใช่ตัวเลือก คำแนะนำที่แก้ไขใหม่จะทำงานกับ 16.04
MRM

ทำงานให้ฉันในระบบปฏิบัติการระดับประถมศึกษา
MChaker

2
นี้ทำงานให้ฉันเท่านั้นหลังจากที่ผมตรวจสอบps -aef | grep mysqlและส่งสัญญาณฆ่าทุกสายพันธุ์ของการทำงาน mysqld
Charney Kaye

12

วิธีง่ายๆที่ฉัน (linux noob) ต้องขุด ... คือการสร้างไฟล์

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


นี่เป็นคำตอบที่ดีกว่าคำตอบที่ได้รับเนื่องจากจะแก้ไขปัญหาที่เกิดขึ้นจริงโดยไม่ต้องใช้วิธีการบังคับกำลังดุร้าย
devius

ในกรณีของtouch /etc/mysql/my.cnf.fallbackฉันให้ฉันผ่านปัญหา
oalders

9

กำจัด / ติดตั้งใหม่ยังไม่ทำงานสำหรับฉัน ฉันพบ "วิธีแก้ปัญหา" ต่อไปนี้:

ฉันไม่พบmysql.cnf.fallbackรายชื่อใน "ไฟล์ที่ให้" สำหรับmysql-server-5.6/ mysql-client-5.6หรือข้อมูลเพิ่มเติมเกี่ยวกับไฟล์

ฉันคัดลอก/etc/mysql/my.cnfไปที่/etc/mysql/my.cnf.fallback(คาดเดาว่านี่จะเป็นไฟล์กำหนดค่า "ทางเลือก" ที่สำคัญน้อยกว่า);

/etc/mysql/my.cnfเป็น symlink ดังนั้นls /etc/mysqlตอนนี้จะแสดง:

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

การติดตั้งแพคเกจนั้นเสร็จสมบูรณ์โดยไม่มีข้อผิดพลาด (เนื่องจากสันนิษฐานว่าปัญหา "ไม่มี" คือ "แก้ไข")

ฉันยังไม่เจอผลข้างเคียงใด ๆ (ยัง)


ฟังดูดี แต่คุณสามารถอธิบายเหตุผลของปัญหาได้มันจะเป็นประโยชน์ต่อผู้อื่น
Shameerariff

5

ฉันมีปัญหาเดียวกันในขณะที่พยายามกำจัด mysql-server (5.7.14)

ในกรณีที่ไฟล์ my.cnf * หายไปคุณสามารถติดตั้งแพกเกจmysqlใหม่อีกครั้งและหลังจากนั้นคุณสามารถกำจัดทั้งสองไฟล์ได้ ( 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 ใหม่อีกครั้ง

apt-get install - ติดตั้ง 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แต่อีกครั้งฉันไม่ต้องการสิ่งนี้


นี่เป็นปัญหาของฉันอย่างแน่นอน สิ่งนี้แก้ไขได้สำหรับฉัน
Dave Kincaid

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 ติดตั้ง mysql-server --fix-missing --fix-broken

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.