การอัพเกรด MySQL 5.5 เป็น MySQL 5.6 บน Ubuntu 14.04 LTS


17

ฉันได้ติดตั้ง LAMP ของฉันด้วยคำสั่งต่อไปนี้:

sudo apt-get update
sudo apt-get install apache2 apache2-suexec mysql-server php5-mysql
sudo mysql_secure_installation
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
sudo apt-get install phpmyadmin

เกือบหนึ่งปีที่แล้ว ตอนนี้ใน PHPMyAdmin ฉันเห็นสิ่งต่อไปนี้:

Server: Localhost via UNIX socket
Server type: MySQL
Server version: 5.5.43-0ubuntu0.14.04.1 - (Ubuntu)
Protocol version: 10
Web server
Apache/2.4.7 (Ubuntu)
Database client version: libmysql - 5.5.43
PHP extension: mysqli Documentation

รุ่น MySQL เป็น5.5.43-0ubuntu0.14.04.1 ฉันจะได้อย่างปลอดภัยและปลอดภัยติดตั้งและใช้งานMySQL 5.6.4+เป็นฉันจำเป็นต้องใช้ด้วยFULLTEXT INNODBฉันเห็นแพคเกจในที่เก็บ Ubuntu แต่ฉันจริงๆควรจะหลีกเลี่ยงปัญหาความขัดแย้งหรือการติดตั้งใด ๆ

ขอบคุณสำหรับความช่วยเหลือ

คำตอบ:


22

ฉันจะติดตั้งอย่างปลอดภัยได้อย่างไร

มันจะยุ่งยากเสมอ

โปรดอ่านหน้าความเข้ากันได้ 5.5 / 5.6ก่อนที่จะทำอะไร ใจ 1 ความแตกต่างใหญ่ระหว่าง 2:

เริ่มต้นด้วย MySQL 5.6.6 พารามิเตอร์เซิร์ฟเวอร์ MySQL หลายตัวมีค่าเริ่มต้นที่แตกต่างจากรุ่นก่อนหน้า แรงจูงใจสำหรับการเปลี่ยนแปลงเหล่านี้คือการให้ประสิทธิภาพที่ดีกว่าและช่วยลดความต้องการสำหรับผู้ดูแลระบบฐานข้อมูลเพื่อเปลี่ยนการตั้งค่าด้วยตนเอง การเปลี่ยนแปลงเหล่านี้อาจมีการแก้ไขที่เป็นไปได้ในรุ่นอนาคตในขณะที่เราได้รับข้อเสนอแนะ

หนึ่งในการเปลี่ยนแปลงครั้งใหญ่คือ 5.5 ใช้ 1 ไฟล์ขนาดใหญ่เป็นบันทึกธุรกรรมและ 5.6 ใช้หลายไฟล์:

ดังนั้นหากคุณกำลังอัพเกรดการติดตั้ง MySQL ที่มีอยู่แล้วยังไม่ได้เปลี่ยนค่าของพารามิเตอร์เหล่านี้จากค่าเริ่มต้นก่อนหน้านี้และความกังวลเกี่ยวกับความเข้ากันได้แบบย้อนหลังคุณอาจต้องการตั้งค่าพารามิเตอร์เหล่านี้เป็นค่าเริ่มต้นก่อนหน้า ตัวอย่างเช่นวางบรรทัดเหล่านี้ในไฟล์ตัวเลือกเซิร์ฟเวอร์:

 [mysqld] 
 innodb_file_per_table=0 
 innodb_checksum_algorithm=INNODB
 binlog_checksum=NONE

หากคุณใช้การจำลองแบบให้ความสนใจกับส่วนนี้ของลิงค์:

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

นำทาสมาอัปเกรดตั้งค่าพวกเขาด้วยค่าที่ต้องการของ clear_defaults_for_timestamp

ทาสจะรับรู้จากรูปแบบของบันทึกไบนารีที่ได้รับจากต้นแบบว่าต้นแบบเก่ากว่า (มีการแนะนำของ

นำต้นแบบลงมาอัพเกรดและกำหนดค่าด้วยค่า clear_defaults_for_timestamp เดียวกันที่ใช้กับทาสและนำกลับมาใช้ใหม่

หากนี่เป็นเซิร์ฟเวอร์ที่ใช้งานจริงฉันจะแนะนำให้ลองใช้กับเครื่องทดสอบก่อน เรามีการเปลี่ยนแปลงที่ค่อนข้างยากจาก 5.5 เป็น 5.6 และเลือกที่จะติดตั้งเครื่องอื่นที่ติดตั้งด้วย 5.6 และใช้ mysldump เพื่อสร้างการสำรองข้อมูลและโหลดลงในฐานข้อมูลของเราบนเครื่องนั้น โปรดทราบว่าการดำเนินการนี้จะใช้เวลานานหากคุณมีฐานข้อมูลขนาดใหญ่ (เนื่องจากการสันทนาการของไฟล์ธุรกรรม innodb)

วิธีการทั่วไป:

  • ใช้ mysqldump เพื่อสร้างการสำรองข้อมูลของฐานข้อมูลของคุณ (ผู้ใช้โครงสร้างที่มีความเสถียรและข้อมูลตาราง) และไฟล์ config ของคุณ (อาจเป็น /etc/mysql/my.cnf)
  • ลบ 5.5 หลังจากลบ 5.5 ตรวจสอบว่าไฟล์ธุรกรรม innodb หายไป (ibdata1, ib_logfile0 และ ib_logfile1) ในฐานะที่ 5.6 ใช้เวอร์ชันการทำธุรกรรมที่ดีกว่าฉันคิดว่าคุณจะใช้สิ่งนี้ ...
  • ติดตั้ง 5.6
  • เปลี่ยนไฟล์กำหนดค่าใหม่และเพิ่มสิ่งที่คุณเปลี่ยนแปลงเป็น 5.5 (โปรดทราบว่าลิงก์ด้านบนและตรวจสอบว่าการเปลี่ยนแปลงใด ๆ ไม่ถูกต้อง)
  • อัปโหลดสำเนาสำรองของคุณเป็น 5.6 (ผู้ใช้ก่อน) โปรดทราบว่าอาจใช้เวลาสักครู่เนื่องจากจะสร้างไฟล์ธุรกรรมใหม่

ในคำสั่ง (หลังจากทำการสำรองข้อมูล):

sudo apt-get remove mysql-server
sudo apt-get autoremove
sudo apt-get install mysql-client-5.6 mysql-client-core-5.6
sudo apt-get install mysql-server-5.6

2
สำหรับข้อมูลของคุณฉันได้ทำการสำรองข้อมูลก่อนจากนั้นจึงทำการติดตั้งด้วยคำสั่งนี้:sudo apt-get remove mysql-server;sudo apt-get autoremove;sudo apt-get install mysql-client-5.6 mysql-client-core-5.6;sudo apt-get install mysql-server-5.6
YahyaE

2
นั่นดูดีใช่: D Gratz! ที่นั่นฉันแก้ไขมันใน ;-)
Rinzwind

โพรซีเดอร์นั้นลบฐานข้อมูลในเซิร์ฟเวอร์นี้หรือไม่?
Please_Dont_Bully_Me_SO_Lords

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