为什么在Ubuntu 14.04上安装MySQL 5.6会失败?

为什么在Ubuntu 14.04上安装MySQL 5.6会失败?

出于好奇,我想在 Ubuntu 14.04 上看看 MySQL 5.6。基于本文安装看起来确实应该简单直接。所以我启动了一台运行 Ubuntu 14.04(64 位)的 AWS EC2 微型服务器,登录到我的原始实例(通过 PuTTY),并发出以下命令:

$ sudo apt-get update
$ sudo apt-get build-dep mysql-server-5.6
$ sudo apt-get install mysql-server-5.6

(前两个命令是绝望之举,因为apt-get install之前单纯的运行是行不通的。但即使使用了所有三个命令,安装步骤仍然不起作用。)

根据上面引用的文章,我期望看到最终命令的输出如下:

mysql start/running, process 2355  
Setting up libhtml-template-perl (2.95-1) ...  
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...  
Processing triggers for libc-bin (2.19-0ubuntu6) ...  
Processing triggers for ureadahead (0.100.0-16) ...  

我得到的却是这个:

start: Job failed to start  
invoke-rc.d: initscript mysql, action "start" failed.  
dpkg: error processing package mysql-server-5.6 (--configure):  
 subprocess installed post-installation script returned error exit status 1  
Setting up libhtml-template-perl (2.95-1) ...  
Setting up mysql-common-5.6 (5.6.16-1~exp1) ...  
Processing triggers for libc-bin (2.19-0ubuntu6) ...  
Processing triggers for ureadahead (0.100.0-16) ...  
Errors were encountered while processing:  
 mysql-server-5.6  
E: Sub-process /usr/bin/dpkg returned an error code (1)

有人能看出哪里出了问题吗?

答案1

我在启动小型 VPS 时也遇到了同样的问题。问题是由内存不足引起的。因此,无需花费额外的钱来增加您不需要的内存,您可以简单地创建交换文件来帮助安装。是的,交换很慢,但您需要做的就是完成安装。

在 Ubuntu 14.04 上,我执行以下操作来解决问题:

创建4G交换文件:

sudo fallocate -l 4G /swapfile

将其权限更改为只有 root 可以访问并更改:

sudo chmod 600 /swapfile

进行交换:

sudo mkswap /swapfile

启用:

sudo swapon /swapfile

现在您可以再次尝试安装 mysql,这次应该会成功。只需记住在执行此操作之前删除之前未成功的安装即可。

答案2

您遇到的问题与此错误报告。启动失败似乎是因为默认的 MySQL 5.6 配置需要的内存比您的微实例所能获得的内存要多。

解决该错误的办法似乎是执行以下操作之一:

  • 增加 EC2 实例中的内存量
  • max_connections为 MySQL变量设置较小的值

答案3

我也遇到过同样的问题。虽然我为虚拟机提供了足够大的内存 12Gb,但仍然出现问题。花了一些时间后发现,默认的 apt get 缺少一些配置转换和工具转换包。

MySQL apt 存储库提供了一种简单方便的方法来使用最新软件包安装和更新 MySQL 产品apt-get。以下是您必须遵循的:

  1. 添加 MySQL APT 存储库 首先,将 MySQL apt 存储库添加到系统的软件存储库列表中。请按照以下步骤操作:

    • 前往 MySQL apt 存储库的下载页面http://dev.mysql.com/downloads/repo/apt/

    • 选择并下载发布包。

    • 使用以下命令安装下载的发布包,将 version-specific-package-name 替换为下载的包的名称(如果您没有在包所在的文件夹内运行该命令,则前面是其路径):

      sudo dpkg -i /PATH/version-specific-package-name.deb
      

    请注意,同一个软件包可以在所有受支持的 Debian 和 Ubuntu 平台上运行。

    • 在安装软件包期间,系统会要求您选择要安装的 MySQL 服务器和其他组件(例如 MySQL Workbench)的版本。如果您不确定要选择哪个版本,请不要更改为您选择的默认选项。如果您不想安装特定组件,也可以选择“无”。选择完所有组件后,选择“确定”以完成发布软件包的配置和安装。

    您以后可以随时更改版本的选择;
    请参阅选择主要发布版本以获取说明。

    • 使用以下命令从 MySQL APT 存储库更新软件包信息(此步骤是必需的):

      sudo apt-get update
      
  2. 使用 APT 安装 MySQL

    • 通过以下命令安装MySQL:

      sudo apt-get install mysql-server
      

这将安装 MySQL 服务器的软件包以及客户端和数据库公共文件的软件包。

在安装过程中,对话框会提出两个要求:为 MySQL 安装的 root 用户提供密码。

  1. 启动和停止 MySQL 服务器

MySQL 服务器安装后会自动启动。 - 您可以使用以下命令检查 MySQL 服务器的状态:

sudo service mysql status
  • 使用以下命令停止 MySQL 服务器:

    sudo service mysql stop
    
  • 要重新启动 MySQL 服务器,请使用以下命令:

    sudo service mysql start
    

我关注了http://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/#apt-repo-fresh-install. 一切顺利,下载了所有软件包并成功安装mysql 5.6

答案4

禁用 performance_schema 还可以节省大量内存。我的空数据库在启动时从 400m 变为 40m:

performance_schema=0

MySQL 文档:http://dev.mysql.com/doc/refman/5.6/en/performance-schema.html

相关内容