Ubuntu 14.04 LTS에서 MySQL 5.5를 MySQL 5.6으로 업그레이드


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

거의 1 년 전이었습니다. 이제 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 입니다. 어떻게 안전하게 설치하고 사용 할 수 5.6.4+ mysql을 내가 사용할 필요로 FULLTEXTINNODB. 나는 우분투 저장소에있는 패키지를 볼 수 있지만 난 정말 충돌 또는 설치 문제를 방지해야한다.

도움을 주셔서 감사합니다.

답변:


22

안전하게 안전하게 설치하는 방법

항상 까다로울 것입니다.

작업을 수행하기 전에 5.5 / 5.6 호환성 페이지를 읽으십시오 . 2의 마음 1 큰 차이 :

MySQL 5.6.6부터 여러 MySQL 서버 매개 변수의 기본값이 이전 릴리스와 다릅니다. 이러한 변경의 동기는 즉시 사용 가능한 성능을 향상시키고 데이터베이스 관리자가 설정을 수동으로 변경할 필요성을 줄이는 것입니다. 이러한 변경 사항은 피드백을받을 때 향후 릴리스에서 수정 될 수 있습니다.

큰 변화 중 하나는 5.5가 하나의 큰 파일을 트랜잭션 로그로 사용하고 5.6은 몇 가지를 사용한다는 것입니다.

따라서 기존 MySQL 설치를 업그레이드하는 경우 이러한 매개 변수의 값을 이전 기본값에서 아직 변경하지 않았으며 이전 버전과의 호환성이 문제가되는 경우 이러한 매개 변수를 이전 기본값으로 명시 적으로 설정하고자 할 수 있습니다. 예를 들어, 다음 행을 서버 옵션 파일에 넣으십시오.

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

복제를 사용하는 경우 링크의이 부분에주의하십시오.

복제에 사용되는 서버를 업그레이드하려면 먼저 슬레이브를 업그레이드 한 다음 마스터를 업그레이드하십시오. 모두 동일한 동일한 explicit_defaults_for_timestamp 값을 사용하는 경우 마스터와 슬레이브 간의 복제가 작동해야합니다.

슬레이브를 중단하고 업그레이드 한 후 원하는 explicit_defaults_for_timestamp 값으로 구성하고 다시 가져옵니다.

슬레이브는 마스터가 수신 한 이진 로그 형식에서 마스터가 이전 버전이고 (explicit_defaults_for_timestamp가 도입되기 전에) 마스터에서 오는 TIMESTAMP 열에 대한 작업이 이전 TIMESTAMP 동작을 사용한다는 것을 인식합니다.

마스터를 중단하고 업그레이드 한 후 슬레이브에 사용 된 것과 동일한 explicit_defaults_for_timestamp 값으로 구성한 후 다시 가져 오십시오.

이것이 프로덕션 서버 인 경우 먼저 테스트 머신에서 시도해 보는 것이 좋습니다. 5.5에서 5.6으로의 전환이 다소 어려웠으며 5.6과 함께 설치된 다른 머신을 설치하고 mysldump를 사용하여 백업을 생성하고 해당 머신의 데이터베이스에로드하도록 선택했습니다. 큰 데이터베이스가있는 경우 (innodb 트랜잭션 파일의 재생성으로 인해) 오랜 시간이 걸릴 것입니다.

일반적인 방법 :

  • mysqldump를 사용하여 데이터베이스 (사용자, 트러블 구조 및 테이블 데이터)와 구성 파일 (아마도 /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.