![为什么在Ubuntu 14.04上安装MySQL 5.6会失败?](https://linux22.com/image/853683/%E4%B8%BA%E4%BB%80%E4%B9%88%E5%9C%A8Ubuntu%2014.04%E4%B8%8A%E5%AE%89%E8%A3%85MySQL%205.6%E4%BC%9A%E5%A4%B1%E8%B4%A5%EF%BC%9F.png)
出于好奇,我想在 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
。以下是您必须遵循的:
添加 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
使用 APT 安装 MySQL
通过以下命令安装MySQL:
sudo apt-get install mysql-server
这将安装 MySQL 服务器的软件包以及客户端和数据库公共文件的软件包。
在安装过程中,对话框会提出两个要求:为 MySQL 安装的 root 用户提供密码。
- 启动和停止 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