问题描述
出于好奇,我想在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产品的简单方便的方法。以下是您必须遵循的内容:
-
添加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
-
-
使用APT安装MySQL
-
通过以下命令安装MySQL:
sudo apt-get install mysql-server
-
这将安装MySQL服务器的包,以及客户端和数据库公共文件的包。
在安装过程中,对话框有两个请求:为root用户提供MySQL安装的密码。
-
启动和停止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