web-dev-qa-db-ja.com

Ubuntu 14.04 LTSでのMySQL 5.5からMySQL 5.6へのアップグレード

次のコマンドを使用して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です。 FULLTEXTINNODBと一緒に使用する必要があるので、安全かつ安全にmysql 5.6.4 +をインストールして使用するにはどうすればよいですか。 Ubuntuリポジトリにパッケージが表示されていますが、競合またはインストールの問題を回避するために実際にを使用する必要があります。

助けてくれてありがとう。

17
YahyaE

安全に安全にインストールする方法

常に注意が必要です。

何かを行う前に 5.5/5.6互換性 ページを読んでください。心の1つの大きな違い2:

MySQL 5.6.6以降、いくつかのMySQL Serverパラメーターには、以前のリリースとは異なるデフォルトがあります。これらの変更の動機は、すぐに使用できるパフォーマンスを向上させ、データベース管理者が設定を手動で変更する必要性を減らすことです。これらの変更は、フィードバックを得るために将来のリリースで修正される可能性があります。

大きな変更点の1つは、5.5が1つの大きなファイルをトランザクションログとして使用し、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を使用して、データベース(ユーザー、trable構造、およびテーブルデータ)および構成ファイル(おそらく/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
22
Rinzwind