apt-get을 사용하여 데비안에서 MySQL을 어떻게 업그레이드합니까?


13

Turnkey Linux 가상 머신을 사용하고 있습니다. 데비안의 버전은 분명히 "Wheezy"업그레이드 경로에 있습니다 (이것이 바로 그것이라 부르는 경우). 보시다시피 리눅스에 익숙하지 않습니다.

MySQL 5.6이 제공하는 몇 가지 새로운 기능이 필요하지만 현재 설치는 MySQL 5.5.35입니다. 최신 버전 (이 게시물 기준 5.6.17) 또는 적어도 5.6.x를 받고 싶습니다.

나는 시도했다 apt-get update, apt-get upgrade, apt-get dist-upgrade. 이것들은 많은 것들을 성공적으로 업데이트했지만 MySQL은 없었습니다. 나는 apt-get upgrade mysql-server이미 최신 버전을 가지고 있다고 시도했다 .

웹의 Debian Wheezy 패키지 저장소 목록에는 5.6이 필요할 때 MySQL 5.5가 표시됩니다. 그런 다음 "백 포트"에 대한 내용을 읽습니다. 특정 데비안이 아직 가지고 있지 않은 것을 얻을 수있을 것 같지만 제대로 작동하지 않는 것 같습니다. 에 줄을 추가해야합니다 /etc/apt/sources.list.d/sources.list. 내가 시도하고 실행 apt-get update하면 404 오류가 발생합니다.

나는 다른 여러 경로도 시도했는데, 하나는 바닐라 MySQL 다운로드를 컴파일하는 중입니다.

나는 이것이 어떻게 수행되는지 긍정적으로 당황합니다. 에 대한 포럼 / 블로그 apt-get및에 대한 대부분의 URL wget은 게시 된 후 곧 종료되는 것 같습니다. 따라서 올바른 정보를 찾는 사람이 어떻게되는지 이해할 수 없습니다. 나는 지금 이틀 동안 이것을하려고 노력했지만 아무데도 갈 수 없습니다.

그래서 지금까지 읽었다 고 가정하면 누군가 데비안에서 MySQL을 업그레이드하는 방법이 비교적 고통스럽지 않은 방식으로 ( make현재 데이터베이스와 구성을 수동으로 사용 하거나 내보내거나 가져올 필요가없는 방법) 알고 싶습니다. ).


테스트 / 불안정 / 실험에서 백 포트를 수행하십시오. Debian이 제공하는 것보다 최신 버전의 소프트웨어를 설치하려면 어떻게합니까?를 참조하십시오 . . 이미 백 포트가있는 PostgreSQL을 사용하는 것이 좋습니다. "/etc/apt/sources.list.d/sources.list에 줄을 추가해야합니다. 이렇게하면 apt-get update를 실행하면 404 오류가 발생합니다." 도움이 필요하면 이에 대한 자세한 내용을 추가해야합니다.
Faheem Mitha

@faheemMitha 호기심에서 postgresql 백 포트는 어디에서 찾았습니까? 나는 새로운 버전과 slony기능 이 필요하며 9.1보다 새로운 버전을 찾을 수 없었습니다.
Shadur

@Shadur : "postgresql 데비안 백 포트"를 검색하십시오. 나는 당신이 원하는 것이 postgresql.org/download/linux/debian 이라고 생각합니다 . backports.debian.org에서 백 포트를 얻을 수있는 경우가 많지만 현재는 그곳에서 사용할 수없는 것 같습니다.
Faheem Mitha

@faheemMitha 나는 전체 오류를 붙여 넣을 것이지만 더 이상 그것을 가지고 있지 않으며 백 포트 URL이 더 이상 어디에 사용되는지 확실하지 않습니다. 그럼에도 불구하고 작업 라인을 알고 있다면 백 포트에 대한 source.list에 연결할 수 있습니다. 추신. 불행히도 다른 데이터베이스 플랫폼으로 전환하는 것이 실제로는 옵션이 아닙니다.
equazcion

@equazcion 내 추천은 DIY 솔루션입니다. 테스트 (또는 불안정하거나 실험적인)에서 데비안 소스를 가져 와서 자신의 데비안 패키지로 다시 빌드하십시오. 이것은 실제로 그렇게 어렵지 않으며 MySQL은 종속성을 해결하기가 어렵습니다. 나는 그 답에 연결된 기본 단계를 설명합니다. 봤어?
Faheem Mitha

답변:


4

실험적인 5.6 MySQL 소스를 wheezy에서 재구성하는 것은 쉬운 일이 아닙니다. 그러나 많은 디스크 공간이 필요합니다. 빌드가 완료된 후 빌드 디렉토리는 5.2GB를 사용했습니다. 또한 빌드하는 데 시간이 걸리고 엄청나게 많은 테스트를 실행합니다. 나는 시간을 귀찮게하지 않았지만 몇 시간을 허용했다. 테스트를 비활성화 할 수는 있지만 테스트를 실행하는 것이 좋습니다. 테스트를 통과하는 한 무해합니다. 그들은 내 컴퓨터에서 했어요. 좋은 소식은 번거 로움없이 빌드하고 설치할 수 있다는 것입니다. 다음 기본 테스트를 실행했습니다.

faheem@orwell:~$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 50
Server version: 5.6.16-1~exp1 (Debian)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

그래서 적어도 서버에 연결할 수 있습니다. 설치된 패키지는 다음과 같습니다.

$ dpkg -l | grep mysql

ii  libdbd-mysql-perl                     4.021-1+b1              amd64                   Perl5 database interface to the MySQL database
ii  libmysqlclient18:amd64                5.5.35+dfsg-0+wheezy1   amd64                   MySQL database client library
ii  libqt4-sql-mysql:amd64                4:4.8.2+dfsg-11         amd64                   Qt 4 MySQL database driver
ii  mysql-client-5.6                      5.6.16-1~exp1           amd64                   MySQL database client binaries
ii  mysql-client-core-5.6                 5.6.16-1~exp1           amd64                   MySQL database core client binaries
ii  mysql-common                          5.5.35+dfsg-0+wheezy1   all                     MySQL database common files, e.g. /etc/mysql/my.cnf
ii  mysql-common-5.6                      5.6.16-1~exp1           all                     MySQL 5.6 specific common files, e.g. /etc/mysql/conf.d/my-5.6.cnf
ii  mysql-server-5.6                      5.6.16-1~exp1           amd64                   MySQL database server binaries and system database setup
ii  mysql-server-core-5.6                 5.6.16-1~exp1           amd64                   MySQL database server binaries
ii  python-mysqldb                        1.2.3-2                 amd64                   Python interface to MySQL

단계는 다음과 같습니다.

  1. wheezy MySQL 5.5 패키지가 설치되어 있으면 제거하면 나중에 문제가 발생합니다. 그들에 의존하는 패키지가 있다면 그것들도 함께 가야합니다.
  2. 먼저 소스를 얻으십시오. 다음을 추가하거나 선호하는 서버에 맞게 조정하십시오 /etc/apt/sources.list.

    deb-src http://debian.lcs.mit.edu/debian/ experimental main non-free contrib
    
  3. 에 다음을 추가하십시오 /etc/apt/preferences.

    Package: *
    Pin: release a=experimental
    Pin-Priority: 1
    
  4. 그런 다음 실행

    apt-get update
    
  5. 그런 다음 실행

    apt-get source mysql-5.6
    

    적당한 디렉토리에. 나는 보통의 디렉토리를 만들고 /usr/local/src,
    이 경우 말 /usr/local/src/mysql.

  6. 그런 다음로 들어갑니다 /usr/local/src/mysql.

  7. 운영

    sudo apt-get build-dep mysql-5.6
    

    내 컴퓨터에는 몇 가지 패키지가 설치되었습니다.

  8. 빌드 할 기본 패키지를 설치하십시오.

    apt-get install build-essential devscripts fakeroot
    

    그런 다음 결과 소스 디렉토리로 cd /usr/local/src/mysql/mysql-5.6- 5.6.16하고 실행하십시오.

    debuild -uc -us
    

    빌드하는 데 시간이 걸립니다. 경우에
    따라 버전 번호를 늘리는 것이 좋지만 실제로는 필요하지 않습니다. 다른 MySQL 5.6 패키지는 엉망이 될 것 같지 않습니다.

    테스트를 실행하지 않으려면 대신 사용할 수 있습니다

    DEB_BUILD_OPTIONS="nocheck" debuild -uc -us
    
  9. 이제 mysql 패키지의 런타임 의존성 인 libdbd-mysql-perl을 설치해야합니다.

     apt-get install libdbd-mysql-perl
    
  10. 그런 다음 한 레벨을 cd로 올리십시오 /usr/local/src/mysql. 거기에 몇 가지 deb 패키지가 있어야합니다. 최소한 설치하고 싶을 것입니다

     mysql-client-core-5.6_5.6.16-1~exp1_amd64.deb         
     mysql-common-5.6_5.6.16-1~exp1_all.deb           
     mysql-server-5.6_5.6.16-1~exp1_amd64.deb
     mysql-client-5.6_5.6.16-1~exp1_amd64.deb  
     mysql-server-core-5.6_5.6.16-1~exp1_amd64.deb
    

    예를 들어 다음을 실행하여 수행 할 수 있습니다.

     dpkg -i mysql-client-core-5.6_5.6.16-1~exp1_amd64.deb         
     mysql-common-5.6_5.6.16-1~exp1_all.deb           
     mysql-server-5.6_5.6.16-1~exp1_amd64.deb
     mysql-client-5.6_5.6.16-1~exp1_amd64.deb  
     mysql-server-core-5.6_5.6.16-1~exp1_amd64.deb
    

우선,이 모든 노력과 노력에 감사드립니다. 이것은 8 단계에서 실패했습니다. 나는 / debian / 경로가없는 것 같습니다 : dpkg-buildpackage: host architecture amd64 fakeroot debian/rules clean Can't exec "fakeroot": No such file or directory at /usr/bin/dpkg-buildpackage line 510. dpkg-buildpackage: error: fakeroot debian/rules clean failed with unknown exit code -1 debuild: fatal error at line 1357: dpkg-buildpackage -rfakeroot -D -us -uc failed 턴키 리눅스에서 이것을하고 있습니다 .LAMP를 사용한다고 생각합니다.
equazcion

@equazcion 당신은 fakeroot가 설치되어 있지 않을 수 있습니다. apt-get install fakeroot.
Faheem Mitha

fakeroot를 설치했습니다. 마지막 단계에서 MySQL 5.5가 중단된다는 오류가 발생했습니다. 방법을 모르기 때문에 5.5를 제거하지 않았으며 현재 데이터베이스에 어떤 영향을 줄지 확신하지 못했습니다. 5.5를 제거한 후 다시 시도 할 준비가되었습니다. 데이터를 새 버전에서 계속 사용할 수 있도록하는 방법을 알려면. 나는 당신이 MySQL에 익숙하지 않다는 것을 알고 있으며 이미 이것에 꽤 많은 시간을 보냈습니다. 이것은 좋은 출발이었습니다. 어쩌면 인터넷 검색을 통해 나머지를 수행하는 방법을 찾을 수 있습니다.
equazcion

@equazcion에 따른 dev.mysql.com/doc/refman/5.6/en/... 당신이 단지와 덤프 필요 mysqldump하고 덤프 파일을 다시로드합니다. 물론 데이터베이스도 백업하십시오.
Faheem Mitha

모든 단계를 다시 수행하지 않고도이 문제를 해결하고 데이터베이스를 다시 가져올 필요가 없었으며 이미 존재했습니다. 누구든지 관심이, 나는해야 할 일을했을 apt-get remove mysql-serverapt-get remove mysql-client도해야했다, apt-get install libterm-readkey-perl마지막 단계 전에. 또한 mysql-server-core마지막 단계에서 설치하기 전에 이전에 설치해야했습니다 mysql-server. 나는 공식적으로 MySQL 5.6.16을 실행하고 있으며 전체 텍스트 InnoDB 검색 인덱스를 성공적으로 테스트했습니다 (필요한 이유)! 감사합니다, Faheem Mitha. 당신은 내 정신을 구했습니다.
equazcion

6

현재 가장 좋은 방법은 공식 MySQL APT 저장소 를 사용하여 apt-get upgrade설치하는 것입니다.


컴파일러를 설치할 필요가 없기 때문에 아마도 가장 좋은 솔루션 일 것입니다. 더 바보 : :
Christopher Schultz

이 솔루션은 저에게 효과적입니다. 후, 설치 MySQL 서버 버전을 선택하고 업그레이드 apt-get upgrade후 내가 할, apt-get upgrade mysql-server그리고 쉬운 5.5에서 5.7로 MySQL을 업그레이드 할 수 있습니다. 업그레이드 후 다시 구성하고 다음을 실행해야합니다.mysql_upgrade -u root
fermin

1

모두 테스트했습니다.

  1. .apt-get 설치 libaio1
  2. groupadd mysql
  3. useradd -r -g mysql mysql
  4. wget -O mysql-5.6.16-debian6.0-x86_64.deb
  5. http://downloads.mysql.com/archives/mysql-5.6/mysql-5.6.16-debian6.0-x86_64.deb
  6. dpkg -i mysql-5.6.16-debian6.0-x86_64.deb
  7. cd / usr / local
  8. ln -s /opt/mysql/server-5.6 mysql
  9. cd mysql
  10. scripts / mysql_install_db --user = mysql
  11. chown -R root.
  12. chown -R MySQL 데이터
  13. CP 지원 파일 /mysql.server /etc/init.d/mysql
  14. mkdir -p /etc/mysql/conf.d/
  15. cp my.cnf / etc / mysql /
  16. echo $ '! include /etc/mysql/my.cnf\n!includedir /etc/mysql/conf.d/'> my.cnf
  17. 서비스 MySQL 시작
  18. ./bin/mysql_secure_installation

:이 (죄송 혼란, 나는 여기에 줄 바꿈을 삽입하는 방법을 모른다) 여기까지 잘 갈 듯 root@lamp local/mysql# update-rc.d mysql-5.7 defaults: update-rc.d: using dependency based boot sequencing update-rc.d: error: unable to read /etc/init.d/mysql-5.7 root@lamp local/mysql# service mysql start: Starting MySQL [FAIL......[....] The server quit without updating PID file (/opt/mysql/server-5.6/data/lamp.pid). ... failed!
equazcion

/etc/init.d/mysql start로 시도하거나 /etc/init.d/mys에서 tab-tab을 눌러 시작하십시오.
Security Beast

@equazcion 축하합니다. 이제 데비안이 새로운 버전의 공식 패키지를 찾는 데 시간이 걸리는 이유를 알게되었습니다.
Shadur
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.