2.11.1Mysql升级UpgradeMethods
1.升级方法
成都创新互联公司服务项目包括吴川网站建设、吴川网站制作、吴川网页制作以及吴川网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,吴川网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到吴川省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
- In-Place Upgrade: (就地升级)Involves shutting down the old MySQL version, replacing the old MySQL binaries or packages with the new ones, restarting MySQL on the existing data directory, and runningmysql_upgrade.
- Logical Upgrade:(逻辑升级) Involves exporting existing data from the old MySQL version usingmysqldump, installing the new MySQL version, loading the dump file into the new MySQL version, and runningmysql_upgrade.
2.升级路径
- 仅支持General Availability(GA)版本之间的升级
- 从5.6到5.7是支持的,升级的下一个版本之前建议升级到最新的版本,如先升级的5.6的最后一个版本,再升级的5.7
- 不支持跳版本升级,如从5.5到 5.7
- 小版本升级是支持的,如5.7.x到 5.7.y
Upgrade within a release series is supported
3.开始之前
- 备份,包含系统库、系统表
- 查看不兼容的改变,seeFeatures Removed in MySQL 5.7.
- 查看Section 2.11.1.2, “Changes Affecting Upgrades to MySQL 5.7”. This section describes changes that may require action before or after upgrading.这部分描述了升级前后可能需要的执行变化。
- 如果你使用了replication复制,查看Section 16.4.3, “Upgrading a Replication Setup”.
- 如果你使用了 InnoDB的 XA transactions,在升级之前运行“XA RECOVER”来检查未提交的Xa事务,如果有结果返回,需要执行XA COMMIT orXA ROLLBACK语句来提交或回滚Xa事务
In-Place Upgrade
To perform an in-place upgrade:
- Review the changes described inSection 2.11.1.2, “Changes Affecting Upgrades to MySQL 5.7” for steps to be performed before upgrading.
- Configure MySQL to perform a slow shutdown by settinginnodb_fast_shutdown to 0. For example:
mysql -u root -p --execute="SET GLOBALinnodb_fast_shutdown=0"
With a slow shutdown, InnoDB performs a full purge and change buffer merge before shutting down, which ensures that data files are fully prepared in case of file format differences between releases.
-
Shut down the old MySQL server.
For example:
mysqladmin -u root -p shutdown
-
Upgrade the MySQL binary
installation or packages. If upgrading a binary installation, unpack the
new MySQL binary distribution package. SeeObtain
and Unpack the Distribution. For package-based installations, replace the old
packages with the new ones.
Note
For supported Linux distributions, the preferred method for replacing the MySQL packages is to use the MySQL software repositories; seeSection 2.11.1.3, “Upgrading MySQL with the MySQL Yum Repository”,Section 2.11.1.4, “Upgrading MySQL with the MySQL APT Repository”, orUpgrading MySQL with the MySQL SLES Repository for instructions.
-
Start the MySQL 5.7 server,
using the existing data directory. For example:
mysqld_safe --user=mysql --datadir=/path/to/existing-datadir
Run mysql_upgrade. For example:
mysql_upgrade -u root -p
- mysql_upgrade examines all tables in all databases for incompatibilities with the current version of MySQL.mysql_upgrade also upgrades the mysql system database so that you can take advantage of new privileges or capabilities.
Note
mysql_upgrade does not upgrade the contents
of the help tables. For upgrade instructions, see Section 5.1.11,
“Server-Side Help”.
- Shut down and restart the MySQL server to ensure that any changes made to the system tables take effect. For example:
mysqladmin -u root -p
shutdown
mysqld_safe --user=mysql --datadir=/path/to/existing-datadir
Logical Upgrade
- Review the changes described inSection 2.11.1.2, “Changes Affecting Upgrades to MySQL 5.7” for steps to be performed before upgrading.
-
Export
your existing data from the previous MySQL version:
mysqldump -u root -p
--add-drop-table --routines --events
--all-databases --force > data-for-upgrade.sql
Note
Use the--routines and--events options withmysqldump (as
shown above) if your databases include stored programs. The--all-databases option includes all
databases in the dump, including themysql database that holds the system tables.
Important
If you have tables that contain generated columns, use themysqldump utility provided with MySQL 5.7.9 or higher to create your dump files. Themysqldump utility provided in earlier releases uses incorrect syntax for generated column
definitions (Bug #20769542). You can use theINFORMATION_SCHEMA.COLUMNS table to
identify tables with generated columns.
-
Shut down the old MySQL server. For example:
mysqladmin -u root -p shutdown - Install MySQL 5.7. For installation instructions, seeChapter 2,Installing and Upgrading MySQL.
-
Initialize
a new data directory, as described atSection 2.10.1,
“Initializing the Data Directory”. For example:
mysqld --initialize --datadir=/path/to/5.7-datadir
Copy the temporary'root'@'localhost' password displayed to your screen or written to your error log for later use.
-
Start the MySQL 5.7 server, using the new data directory. For
example:
mysqld_safe --user=mysql --datadir=/path/to/5.7-datadir
- Reset theroot password:
shell> mysql
-u root -p
Enter password: **** <- enter
temporary root password
mysql> ALTER USER USER() IDENTIFIED BY 'your new password';
- Load the previously created dump file into the new MySQL server. For example:
mysql -u root -p--force < data-for-upgrade.sql
Note
It is not recommended to load a dump file when GTIDs are enabled on the server
(gtid_mode=ON), if your dump file
includes system tables.mysqldump issues DML instructions for the system tables which use the non-transactional
MyISAM storage engine, and this combination is not permitted when GTIDs are
enabled. Also be aware that loading a dump file from a server with GTIDs
enabled, into another server with GTIDs enabled, causes different transaction
identifiers to be generated.
-
Runmysql_upgrade. For example:
mysql_upgrade -u root -p
mysql_upgrade examines all tables in all databases for incompatibilities with the current
version of MySQL.mysql_upgrade also upgrades themysql system
database so that you can take advantage of new privileges or capabilities.
Note
mysql_upgrade does not upgrade the contents of the help tables. For upgrade instructions, seeSection 5.1.11, “Server-Side Help”.
- Shut down and restart the MySQL server to ensure that any changes made to the system tables take effect. For example:
mysqladmin -u
root -p shutdown
mysqld_safe --user=mysql --datadir=/path/to/5.7-datadir
Upgrade Troubleshooting
- If problems occur, such as that the newmysqld server does not start, verify that you do not have an oldmy.cnf file from your previous installation. You can check this with the--print-defaults option (for example,mysqld --print-defaults). If this command displays anything other than the program name, you have an activemy.cnf file that affects server or client operation.
- If, after an upgrade, you experience problems with compiled client programs, such asCommands out of sync or unexpected core dumps, you probably have used old header or library files when compiling your programs. In this case, check the date for yourmysql.h file andlibmysqlclient.a library to verify that they are from the new MySQL distribution. If not, recompile your programs with the new headers and libraries. Recompilation might also be necessary for programs compiled against the shared client library if the library major version number has changed (for example, fromlibmysqlclient.so.15 tolibmysqlclient.so.16).
- If you have created a user-defined function (UDF) with a given name and upgrade MySQL to a version that implements a new built-in function with the same name, the UDF becomes inaccessible. To correct this, useDROP FUNCTION to drop the UDF, and then useCREATE FUNCTION to re-create the UDF with a different nonconflicting name. The same is true if the new version of MySQL implements a built-in function with the same name as an existing stored function. SeeSection 9.2.4, “Function Name Parsing and Resolution”, for the rules describing how the server interprets references to different kinds of functions.
分享文章:2.11.1Mysql升级UpgradeMethods
本文路径:http://scjbc.cn/article/pddsge.html