MySQL 5.5更新到MySQL 5.7


29

我搜索了一个虚拟教程,以了解如何将我的MySQL 5.5 Server更新到使用ubuntu 14.04的MySQL 5.7。我已经尝试过MySQL网站上的教程。如何升级服务器?


MySQL文档说:“支持升级多个发行版,但仅当您一次升级一个发行版时。例如,从5.1升级到5.5,然后再升级到5.6。请依次遵循每个发行版的升级说明。 ”。因此,您应该分两步进行更新5.5->
5.6-

Answers:


74

这为我工作:

wget https://dev.mysql.com/get/mysql-apt-config_0.8.10-1_all.deb
sudo gdebi mysql-apt-config_0.8.10-1_all.deb
sudo apt-get update
sudo apt-get install mysql-server

第二个命令将要求输入:

enter image description here

选择5.7后,选择“应用”


$ mysql --version
mysql  Ver 14.14 Distrib 5.7.8-rc, for Linux (x86_64) using  EditLine wrapper

遵循MySQL升级指南,安装后不要忘记运行mysql_upgrade来升级系统表并重新启动服务器。

$ mysql_upgrade

要么

$ sudo mysql_upgrade -u root -p

并重启mysql

sudo service mysql restart

1
我已经使用这种方法升级了mysql,但它破坏了我的apache2,现在我在所有托管站点上都收到500。askubuntu.com/questions/795868/…–
拉胡尔·贾

1
我认为新版本的deb链接:dev.mysql.com/get/mysql-apt-config_0.8.0-1_all.deb
zx1986

4
请注意,这sudo mysql_upgrade -u root -p是必需的!
贾德耶

2
随着新版本的发布,wget参数的url将继续更改。转到这里dev.mysql.com/downloads/repo/apt并检查页面底部
Gerbus

1
我如何choose "apply"...我按Enter键,一次又一次地走了我相同的步骤
Umair

28

您可以看到我的评论,即@Rinzwind解决方案在我的情况下不起作用(Ubuntu 14.04和Mysql 5.5)。因此,我已经在解决方案上搜索了Google,并在Digital Ocean Tutorial中找到了对我有用的答案。

首先,备份所有数据库。

mysqldump --all-databases > all_databases.sql

如果以上命令对您不起作用,请尝试以下命令。

mysqldump -u root -p --all-databases > all_databases.sql

我正在粘贴对我有用的教程的特定部分。

如果要安装MySQL 5.7,则需要从MySQL APT信息库页面添加更新的APT软件包信息库。单击右下角的下载,然后从“不,谢谢,”开始复制下一页上的链接。将.deb软件包下载到您的服务器。

wget https://dev.mysql.com/get/mysql-apt-config_0.8.1-1_all.deb

接下来,使用dpkg安装它。

sudo dpkg -i mysql-apt-config_0.8.1-1_all.deb

您会看到一个提示,询问您要配置哪种MySQL产品。突出显示的MySQL服务器选项应为mysql-5.7。如果不是,请按ENTER,然后使用箭头键向下滚动至mysql-5.7,然后再次按ENTER

选项显示mysql-5.7后,在主菜单上向下滚动到Apply,然后再次按Enter。现在,更新您的包裹索引。

sudo apt-get update

最后,安装MySQL-server软件包,该软件包现在包含MySQL 5.7。

sudo apt-get install mysql-server

现在升级所有的mysql数据库。

sudo mysql_upgrade -u root -p

现在重启mysql服务器。

sudo service mysql restart

始终在https://dev.mysql.com/downloads/repo/apt/中找到最新版本的mysql-at-config文件


2
我在mysql服务器安装过程中收到以下错误:W:GPG错误:repo.mysql.com可信任InRelease:以下签名无效:KEYEXPIRED 1487236823 KEYEXPIRED 1487236823 KEYEXPIRED 1487236823
Snigdha Batra

3
@SnigdhaBatra,这是一个已知的错误。使用命令 sudo apt-key adv --keyserver pgp.mit.edu --recv-keys A4A9406876FCBD3C456770C88C718D3B5072E1F5来解决您的问题。
拉胡尔·贾

我知道无法检索到密钥A4A9〜,所以什么也没发生
Lucas Bustamante

您正在使用哪个Ubuntu版本?
拉胡尔·贾

1
Fwiw,为了备份所有数据库,我还必须指定一个用户mysqldump(按照此答案)。例如:mysqldump -u root -p --all-databases > alldb.sql
Nick F

3

从14.04升级到16.04时也会发生这种情况,这会导致不受支持的mysql升级(5.5-> 5.7),这不是mysql所记录的受支持的升级路径。解决此问题的最简单方法是将mysql升级到5.6,同时仍低于14.04。首先(当然!)转储所有数据库即可实现此目的;

主机名#mysqldump --lock-all-tables -u root -p --all-databases> backup.sql

然后升级到mysql 5.6;

主机名#apt-get install mysql-server-5.6 mysql-client-5.6 mysql-server-core-5.6 mysql-client-core-5.6

这样,所有数据库都就位升级,并且(到目前为止,在我的机器上)完全安全且透明地升级到5.6。升级后唯一的问题可能是TIMESTAMP条目。现在,即使在将do-release-upgrade升级到16.04之后,mysql仍然保持在5.6,并且在发行版升级期间,将不受支持的从5.5直接升级到5.7的问题甚至从未出现。

希望这可以帮助,

凯莉

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.