在Ubuntu 14.04 LTS上将MySQL 5.5升级到MySQL 5.6


17

我已经使用以下命令安装了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。我怎样才能安全地安装和使用的MySQL 5.6.4+,因为我需要使用FULLTEXTINNODB。我在Ubuntu存储库中看到了这些软件包,但是我确实应该避免任何冲突或安装问题。

谢谢你的帮助。

Answers:


22

如何安全地安装

这将总是棘手的。

在执行任何操作之前,请阅读5.5 / 5.6兼容性页面。介意1与2之间的差异很大:

从MySQL 5.6.6开始,一些MySQL Server参数的默认值与以前的版本不同。这些更改的动机是提供更好的开箱即用性能,并减少数据库管理员手动更改设置的需求。随着我们获得反馈,这些更改可能会在将来的版本中进行修订。

最大的变化之一是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

2
供您参考,我先备份了一个文件,然后使用以下命令成功安装了它: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
YahyaE 2015年

2
看起来不错,是:D Gratz!在那里,我在;-)中进行了编辑
Rinzwind,2015年

该过程是否会擦除该服务器中的数据库?
Please_Dont_Bully_Me_SO_Lords

@EASI不,但问题是……不好。升级mysql时,您需要创建一个备份并将其还原,以使mysql扫描不赞成使用的功能/参数/选项/设置。
Rinzwind '17
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.