เกิดข้อผิดพลาดในการติดตั้ง mySql บน Ubuntu 16.04


15

ฉันได้ทำตามคำแนะนำในหน้านี้ เพื่อติดตั้ง mysql บน Ubuntu 16.04

ผมครึ่งทางลงหน้าว่าในส่วนที่ชื่อ "MySQL การติดตั้งและกำหนดค่า" sudo apt-get install mysql-serverและฉันเรียกใช้คำสั่ง ฉันพบข้อผิดพลาด แต่นี่คือผลลัพธ์ของข้อผิดพลาดนั้นในเทอร์มินัลของฉัน:

Preconfiguring packages ...
Selecting previously unselected package mysql-common.
(Reading database ... 41515 files and directories currently installed.)
Preparing to unpack .../mysql-common_5.7.12-0ubuntu1_all.deb ...
Unpacking mysql-common (5.7.12-0ubuntu1) ...
Selecting previously unselected package mysql-client-5.7.
Preparing to unpack .../mysql-client-5.7_5.7.12-0ubuntu1_amd64.deb ...
Unpacking mysql-client-5.7 (5.7.12-0ubuntu1) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up mysql-common (5.7.12-0ubuntu1) ...
update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode
Selecting previously unselected package mysql-server-5.7.
(Reading database ... 41563 files and directories currently installed.)
Preparing to unpack .../mysql-server-5.7_5.7.12-0ubuntu1_amd64.deb ...
Unpacking mysql-server-5.7 (5.7.12-0ubuntu1) ...
Selecting previously unselected package mysql-server.
Preparing to unpack .../mysql-server_5.7.12-0ubuntu1_all.deb ...
Unpacking mysql-server (5.7.12-0ubuntu1) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for man-db (2.7.5-1) ...
Setting up mysql-client-5.7 (5.7.12-0ubuntu1) ...
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
update-alternatives: using /etc/mysql/mysql.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode
mysql_upgrade: Got error: 1045: Access denied for user 'debian-sys-maint'@'localhost' (using password: YES) while connecting to the MySQL server
Upgrade process encountered error and will not continue.
mysql_upgrade failed with exit status 11
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

นี่เป็นครั้งแรกที่ฉันติดตั้งเซิร์ฟเวอร์และติดตั้ง mysql ไม่แน่ใจว่านี่อาจเป็นสาเหตุของข้อผิดพลาดได้หรือไม่ แต่ฉันเคยลองติดตั้ง mysql แต่ไม่ได้ทำตามขั้นตอนของ LAMP (ฉันเพิ่งทราบว่านี่คืออะไร) และนั่นก็ไม่สำเร็จและฉันต้องถอนการติดตั้ง


ยินดีต้อนรับสู่ AskUbuntu Access denied for user 'debian-sys-maint'@'localhost'ในบันทึกของคุณมีบรรทัด ผู้ใช้นั้นมาจากไหน ฉันไม่คิดว่าจะพบมันในระบบ Ubuntu
guntbert

สวัสดี guntbert - ด้วยการค้นหาเพียงเล็กน้อยดูเหมือนว่าdebian.cnfไฟล์ของมัน ฉันพบstackoverflow.com/questions/11644300/นี้ - และดูคำตอบที่ได้รับ 47 คะแนน (ไม่ใช่คำตอบที่ยอมรับ) มีรหัสผ่านไม่ตรงกัน ฉันให้ช็อตเด็ด - เพราะฉันไม่รู้ว่ารหัสผ่านคืออะไร!
Darren Haynes

คำตอบนี้แก้ปัญหาให้ฉันได้โดยไม่ต้องลบ mysql: /ubuntu//a/793545/597698
Elkana Bardugo

คำตอบ:


17

คำตอบนี้เป็นคำตอบในการอัพเกรด 16.04 ที่ยากจน mysql-serverแต่ฉันไม่สามารถตอบได้เนื่องจากผู้ดูแลระบบล็อคไว้ที่ 10 ชื่อเสียง

ข้อผิดพลาดใน APT เกิดขึ้นระหว่างการอัพเกรด Ubuntu เป็น 16.04 (xenial) และ Mysql จาก 5.5 เป็น 5.7 เนื่องจากปัญหาด้านบรรจุภัณฑ์การอัพเกรด APT สิ้นสุดลงในบริเวณขอบรกเนื่องจากสคริปต์การติดตั้งโพสต์ของ Mysql-server-5.7 ล้มเหลวในการดำเนินการให้เสร็จสมบูรณ์

เมื่อต้องการแก้ไขปัญหาลองขั้นตอนเหล่านี้:

  1. apt purge mysql-server และapt autoremoveทำความสะอาดร่องรอยทั้งหมดของ MySQL เก่า ข้อมูลฐานข้อมูลจะไม่ถูกทำลาย
  2. ลบทุกอย่างออกจาก/etc/mysqlไดเรกทอรี
  3. ตรวจสอบว่าไม่มีแพ็คเกจเก่าของ Mysql ติดตั้งอยู่: dpkg -l | grep mysql
  4. apt install mysql-server ติดตั้ง

หากขั้นตอนเหล่านี้สิ้นสุดลงในการติดตั้งที่ไม่สมบูรณ์แบบเดียวกันให้ลองขั้นตอนถัดไป:

  1. Tail -n 20 /var/log/mysql/error.log
  2. ข้อผิดพลาดอาจเป็น รหัสผ่านไม่ถูกต้องสำหรับ debian-sys-maint b ไม่มีหน่วยความจำสำหรับ Innodb

แก้ไข 2a: คุณต้องอัปเกรดตารางระบบ Mysql จาก 5.5 เป็น 5.7

แก้ไข my.cnf เพื่อรวมไว้ภายใต้ '[mysqld]' บรรทัด "skip-grant-tables" service mysql start, และmysql_upgrade --force -u root -p

แก้ไข 2b: คุณมีหน่วยความจำไม่พอสำหรับ Mysql Innodb pool (คุณอยู่บนเซิร์ฟเวอร์ขนาดเล็กหรือไม่?)

แก้ไข my.cnf เพื่อรวมไว้ภายใต้ '[mysqld]' the line innodb_buffer_pool_size = 20M

พูล innodb เริ่มต้นคือ 128M ซึ่งแน่นใน 512M VM

หากต้องการล้างข้อผิดพลาด APT ให้ติดตั้งโพสต์อีกครั้ง

dpkg --configure -a

มันจะลบฐานข้อมูลหรือจะปลอดภัยหรือไม่
Thirumal

5

การลบ mysql และติดตั้งใหม่ทั้งหมดเป็นวิธีการแก้ปัญหาที่ฉันในที่สุดก็มาถึง แม้ว่าฉันจะพยายามถอนการติดตั้งและติดตั้งอีกครั้ง แต่ก็ไม่สำเร็จ (ซึ่งทำให้ฉันถามคำถามนี้) ฉันลองถอนการติดตั้งอย่างละเอียดมากขึ้นหลังจากค้นหาคำแนะนำในหน้านี้: ถอนการติดตั้ง MySQL อย่างสมบูรณ์

ทำตามคำแนะนำในการถอนการติดตั้งและติดตั้งใหม่เพื่อแก้ไขปัญหา



3

สิ่งนี้ใช้ได้กับฉัน:

sudo apt-get remove --purge mysql*

คำสั่งนี้จะถามคุณว่าคุณต้องการลบฐานข้อมูลของคุณออกหรือไม่/var/lib/mysqlและจะลบอินสแตนซ์อื่น ๆ ทั้งหมดของ mysql!

ดังนั้นให้ทำการแบ็คอัพฐานข้อมูลของคุณก่อน!

หลังจากนี้ฉันสามารถติดตั้งฐานข้อมูลโดยออกคำสั่ง:

sudo apt-get install mysql-server

1

ลองลบแพ็คเกจและไฟล์ทั้งหมดจากนั้นติดตั้ง "mysql-server" อีกครั้ง

sudo apt-get remove --purge mysql-\*
sudo rm -rf /var/lib/mysql

sudo apt-get install mysql-server 

1

ก่อนอื่นคุณต้องลบแพ็คเกจทั้งหมดของ mysql-server:

sudo rm -rf /var/lib/mysql

จากนั้นติดตั้ง:

sudo apt-get install lamp-server^

หรือคุณสามารถทำ:

sudo apt-get install mysql-server

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