既存の5.6から5.7へのアップデートは以下の手順で可能。
https://dev.mysql.com/doc/refman/5.7/en/upgrading.html#upgrade-procedure-inplace
# /usr/bin/mysql -V /usr/bin/mysql Ver 14.14 Distrib 5.6.29, for Linux (x86_64) using EditLine wrapper WALの内容をシャットダウン時にテーブルスペースに反映させる # /usr/bin/mysql -u root -p -e "show global variables like 'innodb_fast_shutdown';" Enter password: +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | innodb_fast_shutdown | 1 | +----------------------+-------+ # /usr/bin/mysql -u root -p -e "set global innodb_fast_shutdown=0" Enter password: シャットダウン # /usr/bin/mysqladmin -u root -p shutdown Enter password: (必要であれば)5.6のリポジトリ情報削除 # yum remove mysql-community-release # yum install http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm # yum clean all # yum update mysql-server ~省略~ ========================================================================================== パッケージ アーキテクチャ バージョン リポジトリー 容量 ========================================================================================== 更新: mysql-community-server x86_64 5.7.11-1.el6 mysql57-community 135 M 依存性関連での更新をします。: mysql-community-client x86_64 5.7.11-1.el6 mysql57-community 23 M mysql-community-common x86_64 5.7.11-1.el6 mysql57-community 326 k mysql-community-devel x86_64 5.7.11-1.el6 mysql57-community 3.7 M mysql-community-libs x86_64 5.7.11-1.el6 mysql57-community 2.1 M mysql-community-libs-compat x86_64 5.7.11-1.el6 mysql57-community 1.6 M トランザクションの要約 ========================================================================================== アップグレード 6 パッケージ ~省略~ warning: /etc/my.cnf created as /etc/my.cnf.rpmnew ~省略~ # mysql -V mysql Ver 14.14 Distrib 5.7.11, for Linux (x86_64) using EditLine wrapper # cp /etc/my.cnf /etc/my.cnf.56 # vi /etc/my.cnf 28,39c28 < ##----------------- 5.6 compatible -----------------## < < sql_mode= NO_ENGINE_SUBSTITUTION < secure_file_priv= "" < binlog_format= STATEMENT < innodb_buffer_pool_dump_at_shutdown= 0 < innodb_buffer_pool_load_at_startup= 0 < innodb_buffer_pool_dump_pct= 100 < default_password_lifetime= 0 < ### Remove log_warnings!! < log_error_verbosity= 3 < log_timestamps= SYSTEM < internal_tmp_disk_storage_engine= MyISAM < show_compatibility_56= ON --- > sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 40a30 > [mysqld_safe] 43,45d32 < < validate-password=OFF < # /etc/init.d/mysqld start # mysql_upgrade -u root -p Enter password: # /etc/init.d/mysqld restart
可能。
https://dev.mysql.com/doc/refman/5.7/en/replication-compatibility.html
MySQL supports replication from one release series to the next higher release series. For example, you can replicate from a master running MySQL 5.5 to a slave running MySQL 5.6, from a master running MySQL 5.6 to a slave running MySQL 5.7, and so on.
2.4から対応している。
https://www.percona.com/doc/percona-xtrabackup/2.4/index.html
yumでインストールする時には、Verを指定する必要がある。
# yum install percona-xtrabackup-24
5.7のバックアップを5.7なら可能。
5.6など以前のVerへは不可能。
オリジナルのデータディレクトリを置き換えたあとMySQLが起動しない場合は、SELINUXを疑う。
# /etc/init.d/mysqld start MySQL Daemon failed to start. mysqld を起動中: [失敗] # tail /var/log/mysqld.log 160407 04:09:28 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 2016-04-07 04:09:29 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2016-04-07 04:09:29 0 [Note] /usr/sbin/mysqld (mysqld 5.6.29-log) starting as process 14762 ... 2016-04-07 04:09:29 14762 [Warning] Can't create test file /var/lib/mysql/my03.lower-test 2016-04-07 04:09:29 14762 [Warning] Can't create test file /var/lib/mysql/my03.lower-test /usr/sbin/mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13 - Permission denied) 2016-04-07 04:09:29 14762 [ERROR] Aborting 2016-04-07 04:09:29 14762 [Note] Binlog end 2016-04-07 04:09:29 14762 [Note] /usr/sbin/mysqld: Shutdown complete 160407 04:09:29 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended # getenforce Enforcing # setenforce 0 # getenforce Permissive