当前位置: 首页>>技术教程>>正文


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

, , ,

问题描述

出于好奇,我想在Ubuntu 14.04上看看MySQL 5.6。基于this article,看起来安装应该简单明了。所以我启动了运行Ubuntu 14.04(64位)的AWS EC2微服务器,登录到我的pristine实例(通过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)

谁能看出出了什么问题?

最佳解决思路

您遇到的问题看起来与this bug report相同。启动失败似乎是因为默认的MySQL 5.6配置需要的内存比微实例中的内存要多。

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

  • 增加EC2实例中的内存量

  • 为MySQL的max_connections变量设置一个较小的值

次佳解决思路

我在创建小型VPS时遇到了同样的问题。问题是由小内存引起的。因此,无需花费额外的资金来增加您不需要的内存,您只需创建交换文件即可帮助安装。是的,交换速度很慢,但您只需完成安装即可。

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

创建4G交换文件:

sudo fallocate -l 4G /swapfile

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

sudo chmod 600 /swapfile

让它交换:

sudo mkswap /swapfile

启用:

sudo swapon /swapfile

现在你可以再次尝试安装mysql,这次应该会成功。请记住在执行此操作之前删除先前不成功的安装。

第三种解决思路

我遇到了同样的问题。虽然我有足够大的内存12Gb给我的VM,但仍然有问题失败的事情。花了一些时间后发现默认apt get缺少一些配置翻译和工具翻译包。

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

  1. 添加MySQL APT存储库首先,将MySQL apt存储库添加到系统的软件存储库列表中。跟着这些步骤:

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

    • 选择并下载发行包。

    • 使用以下命令安装下载的发行包,将version-specific-package-name替换为下载的包的名称(如果未在包所在的文件夹中运行命令,则以其路径开头):

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

    请注意,相同的包适用于所有受支持的Debian和Ubuntu平台。

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

    您可以随时更改版本的选择;有关说明,请参阅选择主要版本。

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

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

    • 通过以下命令安装MySQL:

      sudo apt-get install mysql-server
      

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

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

  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

第四种思路

在我的情况下,我补充说

innodb_buffer_pool_size = 20M

/etc/mysql/my.cnf

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6210.html,未经允许,请勿转载。