web-dev-qa-db-ja.com

apt-getを使用してDebianでMySQLをアップグレードするにはどうすればよいですか?

ターンキーLinux仮想マシンを使用しています。そこにあるDebianのバージョンは明らかに「Wheezy」アップグレードパス上にあります(それがあなたがそれと呼んでいる場合)。ご覧のとおり、私はLinuxに完全には慣れていません。

現在のインストールはMySQL 5.5.35ですが、MySQL 5.6が提供するいくつかの新機能が必要です。最新バージョン(この投稿の時点では5.6.17)または少なくとも5.6.xを入手したいと考えています。

apt-get updateapt-get upgradeapt-get dist-upgradeを試しました。これらは多くのことをうまく更新しましたが、MySQLではありませんでした。私はapt-get upgrade mysql-serverを試しました。これは、すでに最新バージョンを持っていることを示しています。

Web上のDebian Wheezyパッケージリポジトリリストには、5.6が必要なときにMySQL 5.5しか表示されません。次に、「バックポート」について何か読みました。これは、私の特定のDebianがまだ持っていないはずのものを手に入れることができるように思えますが、機能させることができないようです。 /etc/apt/sources.list.d/sources.listに行を追加する必要があります。そうしようとすると、apt-get updateを実行すると、404エラーが発生します。

私は他のいくつかのルートも試しましたが、1つはバニラMySQLのダウンロードをコンパイルすることでした。

これがどのように行われるかについて、私は積極的に困惑しています。フォーラム/ブログに記載されているapt-getのほとんどのURL、およびwgetのURLは、投稿された直後に死んでしまうようです。情報。私はこれを2日間続けてきましたが、どこにも行けません。

したがって、ここまで読んだことを前提として、DebianでMySQLを比較的簡単な自動化された方法(makeやエクスポート/インポートを使用する必要がない方法)でアップグレードする方法があるかどうかを知りたいと思います。現在のデータベースと構成を手動で)。

13
equazcion

Wheezyの実験的な5.6 MySQLソースを再構築するのは簡単なことです。ただし、多くのディスク容量が必要になります。ビルドが完了した後、ビルドディレクトリは5.2 GBを使用していました。また、ビルドには時間がかかり、信じられないほど多くのテストが実行されます。私はそれを計るのに迷惑を掛けなかったが、数時間を見込んだ。テストを無効にすることは可能ですが、テストを実行することをお勧めします。テストに合格する限り、害はありません。彼らは私のマシンでやった。嬉しいことに、手間をかけずにビルドおよびインストールできました。次の基本テストを実行しました。

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にcdします。

  7. 走る

    Sudo apt-get build-dep mysql-5.6
    

    私のマシンでは、これによりいくつかのパッケージがインストールされました。

  8. ビルドするためのいくつかの基本パッケージをインストールします。

    apt-get install build-essential devscripts fakeroot
    

    次に、結果のソースディレクトリ/usr/local/src/mysql/mysql-5.6- 5.6.16にcdして実行します。

    debuild -uc -us
    

    ビルドにはしばらく時間がかかります。場合によっては、インクリメントすることをお勧めします
    バージョン番号ですが、ここでは実際には必要ありません。他のMySQL 5.6パッケージがwheezyに入る可能性は低いためです。

    テストを実行したくない場合は、代わりに使用できます

    DEB_BUILD_OPTIONS="nocheck" debuild -uc -us
    
  9. 次に、mysqlパッケージのランタイム依存関係であるlibdbd-mysql-Perlをインストールする必要があります。

     apt-get install libdbd-mysql-Perl
    
  10. 次に、1レベル上に/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
    
4
Faheem Mitha

現在、最良のオプションは、公式の MySQL APT repo を使用することです。これにより、apt-get upgradeインストール。

6
takeshin

すべてテスト済み楽しんでください。

  1. .apt-get install 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 support-files/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
1
Security Beast