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

Yah*_*yaE 17 server lamp mysql phpmyadmin 14.04

我已经使用以下命令安装了我的 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
Run Code Online (Sandbox Code Playgroud)

差不多是一年前了。现在在 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
Run Code Online (Sandbox Code Playgroud)

MySQL 版本是5.5.43-0ubuntu0.14.04.1。我如何安全可靠地安装和使用mysql 5.6.4+,因为我需要FULLTEXTINNODB. 我在 Ubuntu 存储库中看到了软件包,但我真的应该避免任何冲突或安装问题。

谢谢你的帮助。

Rin*_*ind 22

我怎样才能安全地安装

这将永远是棘手的。

在做任何事情之前,请阅读5.5/5.6 兼容性页面。Mind 1 2之间的大区别:

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

最大的变化之一是 5.5 使用 1 个大文件作为事务日志,而 5.6 使用了几个:

因此,如果您正在升级现有的 MySQL 安装,尚未更改这些参数的值从它们以前的默认值,并且向后兼容性是一个问题,您可能希望将这些参数显式设置为它们以前的默认值。例如,将这些行放在服务器选项文件中:

 [mysqld] 
 innodb_file_per_table=0 
 innodb_checksum_algorithm=INNODB
 binlog_checksum=NONE
Run Code Online (Sandbox Code Playgroud)

如果您使用复制,请注意链接的这一部分:

要升级用于复制的服务器,请先升级从服务器,然后升级主服务器。只要使用相同的explicit_defaults_for_timestamp 值,master 和它的slave 之间的复制应该可以工作:

关闭从站,升级它们,使用所需的explicit_defaults_for_timestamp 值配置它们,然后将它们恢复。

从站将从从主站收到的二进制日志的格式中识别出主站较旧(在引入explicit_defaults_for_timestamp 之前),并且对来自主站的 TIMESTAMP 列的操作使用旧的 TIMESTAMP 行为。

关闭主服务器,升级它,并使用在从服务器上使用的相同的explicit_defaults_for_timestamp 值对其进行配置,然后将其重新启动。

如果这是一个生产服务器,我建议首先在测试机器上尝试。我们经历了从 5.5 到 5.6 的相当困难的过渡,并选择安装另一台安装了 5.6 的机器,并使用 mysldump 创建备份并将它们加载到我们在该机器上的数据库中。请注意,如果您有一个大型数据库(由于重新创建 innodb 事务文件),这将需要很长时间。

一个通用的方法:

  • 使用 mysqldump 创建数据库(用户、表结构和表数据)和配置文件(可能是 /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
Run Code Online (Sandbox Code Playgroud)

  • 为了您的信息,我先备份然后使用以下命令成功安装它:`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认同)
  • 看起来不错是的:D Gratz!我在那里编辑了它;-) (2认同)