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


13

ターンキー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、これはすでに最新バージョンを持っているということです。

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

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

私はこれがどのように行われるかについて前向きに困惑しています。以下のためのフォーラム/ブログに記載されたURLのほとんどはapt-get、とさえについてはwget、それらが掲載している後に誰がしても適切な情報を見つけることについてどのようになるので、私は理解することはできませんすぐに死ぬように見えます。私はこれを2日間続けようとしていますが、どこにも行けません。

あなたがこれまで読んだと仮定すると、誰かが比較的痛みのない自動化された方法でDebianのMySQLをアップグレードする方法があるかどうかを知りたいです(make現在のデータベースと設定を手動で使用またはエクスポート/インポートする必要はありません))。


テスト/不安定/実験からのバックポートを行います。Debianが提供するものよりも新しいバージョンのソフトウェアをインストールするにどうすればいいですか?をご覧ください。より良いのは、すでにバックポートを持っているPostgreSQLを使用することです。「/etc/apt/sources.list.d/sources.listに行を追加する必要があります。それをしようとすると、apt-get updateを実行すると、404エラーが発生します。」ヘルプが必要な場合は、これに関する詳細を追加する必要があります。
ファヒームミタ14

@faheemMitha好奇心から、これらのpostgresqlバックポートはどこで見つけましたか?新しいバージョンとslony機能が必要になりましたが、9.1より新しいものは見つかりませんでした。
シャドゥール14

@Shadur:「postgresql debian backports」を検索してください。あなたが望むのはpostgresql.org/download/linux/debianです。多くの場合、backports.debian.orgからバックポートを取得できますが、現在はそこから利用できないようです。
ファヒムミタ14

@faheemMitha私は完全なエラーを貼り付けますが、もう持っていないので、使用したバックポートURLがどこにあるのかわかりません。それでもなお、バックポート用にsources.listにプラグインできる作業ラインを知っている場合は、試してみたいと思います。PS。残念ながら、この時点では、別のデータベースプラットフォームに切り替えることは実際には選択肢ではありません。
equazcion 14

@equazcion私の推奨事項はDIYソリューションです。テスト(または不安定または実験的)からDebianソースを取得し、独自のDebianパッケージに再構築します。これは実際にはそれほど難しくなく、MySQLは依存関係を解決するのが難しいとは考えられません。リンクした回答の基本的な手順を説明します。あなたはそれを見ましたか?
ファヒムミタ

回答:


4

実験5.6のMySQLソースをwheezyの実験から再構築するのは簡単です。ただし、大量のディスク容量が必要になります。ビルドが完了した後、ビルドディレクトリは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. 次ににcdし/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パッケージがwheezyに移行する可能性は低いためです。

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

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

     apt-get install libdbd-mysql-perl
    
  10. 次に、1レベル上に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を利用していると思うTurnkey Linuxでこれをしています。
equazcion 14

@equazcionでは、fakerootがインストールされていない可能性があります。apt-get install fakeroot
ファヒムミタ14

fakerootのインストールは機能しました。最後のステップでは、MySQL 5.5が破損するというエラーが発生しました。あなたが提案したように5.5を削除するのを怠りました。なぜなら、私はその方法がわからず、現在のデータベースにどのように影響するかわからなかったからです。5.5を削除した後、これをもう一度試してみる準備ができています。新しいバージョンでデータを使用できるようにする方法を教えてください。ただし、MySQLにそれほど慣れていないことは知っており、これにはかなりの時間を費やしました。これは素晴らしいスタートでした。たぶん、グーグルで休憩する方法を見つけることができます。
equazcion

dev.mysql.com/doc/refman/5.6/en/によると、@ equazcion …ダンプする必要がありmysqldump、ダンプファイルをリロードするだけです。もちろん、データベースもバックアップします。
ファヒームミタ14

すべてのステップをやり直さずにこれを回収し、データベースを再インポートする必要はありませんでした-それらは既にそこにありました。興味のある人のために、私はやらなければならapt-get remove mysql-serverapt-get remove mysql-clientapt-get install libterm-readkey-perl最後のステップの前にやらなければなりませんでした。また、mysql-server-core最後のステップでのインストールは、前に行う必要がありましたmysql-server。現在、MySQL 5.6.16を公式に実行しており、フルテキストInnoDB検索インデックスを正常にテストしています(これが必要な理由です)。ありがとう、ファヒーム・ミタ。あなたは私の正気を救った。
equazcion 14

6

現在、最良のオプションは、インストールを許可する公式のMySQL APTリポジトリを使用することapt-get upgradeです。


これはおそらく、コンパイラをインストールする必要がないため、最良のソリューションです。もっと愚かさ:)
クリストファーシュルツ

このソリューションは私のために機能します。インストール後、mysqlサーバーのバージョンを選択してアップグレードしapt-get upgrade、次にiを実行しapt-get upgrade mysql-server、mysqlを5.5から5.7に簡単にアップグレードします。:後に再度設定して実行する必要がありますアップグレードmysql_upgrade -u root
フェルミン

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 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 start
  18. ./bin/mysql_secure_installation

これは、(申し訳ありません混乱のために、私はここに改行を挿入する方法がわからない)ここまではうまくいっているように見えた: root@lamp local/mysql# update-rc.d mysql-5.7 defaultsupdate-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 startStarting MySQL [FAIL......[....] The server quit without updating PID file (/opt/mysql/server-5.6/data/lamp.pid). ... failed!
equazcion

/etc/init.d/mysql開始としてみてくださいまたは/etc/init.d/mysでタブタブを押してみてください、それを開始
セキュリティビースト

@equazcionおめでとうございます。debianが新しいバージョンの公式パッケージを作成するのに時間がかかることがある理由を発見しました。
シャドゥール14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.