ฉันจะลดระดับ mysql 5.7 ถึง 5.6 บน Ubuntu 16.04 ได้อย่างไร


11

ฉันค้นหา MySQL 5.7 เพื่อเป็นหน่วยความจำขนาดใหญ่และต้องการย้อนกลับไปเป็น MySQL 5.6

อย่างไรก็ตามทุกครั้งที่ฉันพยายามถอนการติดตั้ง 5.7 และติดตั้ง 5.6 ฉันลงเอยด้วยบริการ MySQL ที่จะไม่เริ่มทำงาน นอกจากนี้ฉันต้องแน่ใจว่าฉันเก็บฐานข้อมูลทั้งหมดของฉันไว้

ใครช่วยบอกฉันทีละขั้นตอนในการย้อนกลับ mysql จาก 5.7 เป็น 5.6

**UPDATE**
$ dpkg -l | grep mysql    

rc  akonadi-backend-mysql                                1.13.0-2ubuntu4                                      all          MySQL storage backend for Akonadi  
ii  dbconfig-mysql                                       2.0.4ubuntu1                                         all          dbconfig-common MySQL/MariaDB support  
ii  libdbd-mysql-perl                                    4.033-1build2                                        amd64        Perl5 database interface to the MySQL database  
rc  libmysqlclient18:amd64                               5.6.30-0ubuntu0.15.10.1                              amd64        MySQL database client library  
rc  libmysqlclient18:i386                                5.6.30-0ubuntu0.15.10.1                              i386         MySQL database client library  
ii  libmysqlclient20:amd64                               5.7.12-0ubuntu1.1                                    amd64        MySQL database client library  
ii  mysql-client-5.7                                     5.7.12-0ubuntu1.1                                    amd64        MySQL database client binaries  
ii  mysql-client-core-5.7                                5.7.12-0ubuntu1.1                                    amd64        MySQL database core client binaries  
ii  mysql-common                                         5.7.12-0ubuntu1.1                                    all          MySQL database common files, e.g. /etc/mysql/my.cnf  
iU  mysql-server                                         5.7.12-0ubuntu1.1                                    all          MySQL database server (metapackage depending on the latest version)  
rc  mysql-server-5.5                                     5.5.43-0ubuntu0.14.10.1                              amd64        MySQL database server binaries and system database setup  
rc  mysql-server-5.6                                     5.6.16-1~exp1                                        amd64        MySQL database server binaries and system database setup  
iF  mysql-server-5.7                                     5.7.12-0ubuntu1.1                                    amd64        MySQL database server binaries and system database setup  
ii  mysql-server-core-5.7                                5.7.12-0ubuntu1.1                                    amd64        MySQL database server binaries  
ii  php-mysql                                            1:7.0+42+deb.sury.org~xenial+2                       all          MySQL module for PHP [default]  
ii  php5.6-mysql                                         5.6.23-1+deb.sury.org~xenial+2                       amd64        MySQL module for PHP  
ii  php7.0-mysql                                         7.0.8-2+deb.sury.org~xenial+1                        amd64        MySQL module for PHP  

คลังเก็บ Ubuntu 16.04 อย่างเป็นทางการมีเพียง 5.7 ดังนั้นก่อนอื่นคุณจะต้องค้นหาที่เก็บซึ่งมี 5.6 บางทีอย่างเป็นทางการ MySQL หนึ่ง
fkraiem

ฉันได้เพิ่ม repo ที่ไว้ใจได้เพื่อเข้าถึง MySQL 5.6
dibs

คุณไม่ควรทำอย่างนั้นโดยเฉพาะอย่างยิ่งเนื่องจากดูเหมือนว่ามี 5.6 แพ็คเกจสำหรับ Xenial
fkraiem

ตัวอย่างเช่นระบบการจัดการบริการมีการเปลี่ยนแปลง (Trusty ใช้ upstart, Xenial ใช้ systemd) ดังนั้นจึงไม่น่าแปลกใจที่บริการในแพ็คเกจที่สร้างขึ้นสำหรับ Trusty (พร้อมด้วย upstart) จะไม่เริ่มทำงานใน Xenial (ด้วย systemd)
fkraiem

อ้าว้าว บางทีนี่อาจเป็นเหตุผลว่าทำไมไม่ว่าฉันจะพยายามทำอะไร
dibs

คำตอบ:


7

ก่อนอื่นให้สร้างmysqldumpฐานข้อมูลทั้งหมดของคุณ (รวมถึงinformation_schema) จากนั้น "หยุด" mysql "และสิ่งนี้จะลบสิ่งที่เกี่ยวข้องกับ mysql:

sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.7 mysql-client-core-5.7

# Backup 5.6 config and data without deleting
sudo mv /etc/mysql /etc/mysql-5.6-backup
sudo mv /var/lib/mysql /var/lib/mysql-5.6-backup
sudo apt-get autoremove
sudo apt-get autoclean

แล้ว

sudo apt-get install mysql-client-5.6
sudo apt-get update

คำเตือน:

  • Ubuntu เปลี่ยนเป็น systemd ด้วย 16.04 คุณอาจต้องเริ่มต้น 16.04 ด้วยการพุ่งพรวดเช่นกันเมื่อใช้ mysql 5.6

1
ฉันค่อนข้างมั่นใจว่า $ sudo rm -rf on / var / lib / mysql จะทำให้ฐานข้อมูลทั้งหมดของฉันหายไป
dibs

มันจะ แต่คุณไม่สามารถเก็บ / var / lib / mysql / anyways คุณต้องการดัมพ์ของฐานข้อมูลของคุณเพื่อให้สามารถโหลดใหม่ได้ มิฉะนั้นคุณจะเลือกการตั้งค่าจาก 5.7 มากกว่าไม่ถูกต้องใน 5.6
Rinzwind

1
ฉันเห็นข้อผิดพลาดอื่น: mysql ต้องหยุดก่อนที่จะลบออก และอีกคำเตือน: เราเปลี่ยนเป็น systemd ระหว่าง 5.6 และ 5.7 ไม่ใช่ผู้ทำข้อตกลง แต่ควรพูดถึง
Rinzwind

@ Rinzwind สิ่งนี้หมายความว่าจริงอีกครั้ง: systemd เปลี่ยนไปหรือไม่ นอกจากนี้ยังเป็นที่ดีที่จะรู้ว่าฉันต้องทิ้ง dbs ฉันจะทำให้แน่ใจก่อน
dibs

3
mysql-client-5.6 ไม่สามารถใช้ได้ในการรับ apt-get โดยค่าเริ่มต้น ดูaskubuntu.com/questions/762384/วิธีการติดตั้ง
โทนี่

0

ฉันเพิ่มที่เก็บ Ubuntu 14.04 (ใน Ubuntu 18.04):

sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu trusty universe'

ฉันสามารถติดตั้ง:

sudo apt install mysql-client-5.6

2
นี้เป็นความคิดที่ดีจริงๆ ดูaskubuntu.com/questions/499800/...
fosslinux

ตกลงเพื่อทำสิ่งนี้ แต่ไม่ต้องอัปเดตและตามด้วย "-r" ลบครั้งเดียวติดตั้ง "sudo add-apt-repository -r 'deb archive.ubuntu.com/ubuntuจักรวาลที่เชื่อถือได้'" มากเท่ากับที่เป็น ความคิดที่ดีที่จะปล่อยให้มันอยู่ใน repo ของคุณถ้าคุณลบมันเมื่อติดตั้ง 5.6 ฉันไม่คิดว่ามันจะเป็นความคิดที่ไม่ดีอย่างที่คิดไว้ข้างต้น คำตอบเดียวกันนี้มี 60 upvotes และเขาได้รับการปรับปรุง apt-get ซึ่งมีศักยภาพมากกว่าที่จะทำให้เกิดปัญหาaskubuntu.com/questions/762384/…
MagicLAMP
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.