Amazon ec2 linux实例mysql未连接

Posted

技术标签:

【中文标题】Amazon ec2 linux实例mysql未连接【英文标题】:Amazon ec2 linux instance mysql not connecting 【发布时间】:2014-09-22 06:35:19 【问题描述】:

大家好,我正在亚马逊 ec2 linus 免费套餐实例中运行我的 magento 站点。

我在几分钟前随机停止工作后启动 mysql 时遇到问题。我在尝试连接时收到此错误:

SQLSTATE[HY000] [2003] 无法连接到 '127.0.0.1' (111) 上的 MySQL 服务器

所以我尝试重新启动 MySQL(这对我以前有用),我得到了这个:

停止mysqld:[确定] MySQL 守护程序无法启动。 启动 mysqld:[失败]

这是我的mysql错误日志

140707 15:04:09 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
140707 15:04:10 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
140707 15:04:10 [Note] Plugin 'FEDERATED' is disabled.
140707 15:04:10 InnoDB: The InnoDB memory heap is disabled
140707 15:04:10 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140707 15:04:10 InnoDB: Compressed tables use zlib 1.2.7
140707 15:04:10 InnoDB: Using Linux native AIO
140707 15:04:10 InnoDB: Initializing buffer pool, size = 128.0M
140707 15:04:10 InnoDB: Completed initialization of buffer pool
140707 15:04:10 InnoDB: highest supported file format is Barracuda.
140707 15:04:10  InnoDB: Waiting for the background threads to start
140707 15:04:11 InnoDB: 5.5.38 started; log sequence number 14130260
140707 15:04:11 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
140707 15:04:11 [Note]   - '0.0.0.0' resolves to '0.0.0.0';
140707 15:04:11 [Note] Server socket created on IP: '0.0.0.0'.
140707 15:04:11 [Note] Event Scheduler: Loaded 0 events
140707 15:04:11 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.5.38'  socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server (GPL)
140707 18:32:03 mysqld_safe Number of processes running now: 0
140707 18:32:03 mysqld_safe mysqld restarted
140707 18:32:04 [Note] Plugin 'FEDERATED' is disabled.
140707 18:32:05 InnoDB: The InnoDB memory heap is disabled
140707 18:32:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140707 18:32:05 InnoDB: Compressed tables use zlib 1.2.7
140707 18:32:05 InnoDB: Using Linux native AIO
140707 18:32:05 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
140707 18:32:05 InnoDB: Completed initialization of buffer pool
140707 18:32:05 InnoDB: Fatal error: cannot allocate memory for the buffer pool
140707 18:32:05 [ERROR] Plugin 'InnoDB' init function returned error.
140707 18:32:05 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140707 18:32:05 [ERROR] Unknown/unsupported storage engine: InnoDB
140707 18:32:05 [ERROR] Aborting

这是我的 etc/my.cnf 文件

[mysqld] 数据目录=/var/lib/mysql socket=/var/lib/mysql/mysql.sock

#禁用符号链接以防止各种安全风险 符号链接=0

#Settings 使用 systemd 时忽略用户和组。

#如果需要在不同的用户或组下运行mysqld,

#根据 mysqld 自定义你的 systemd 单元文件

#instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe] 日志错误=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid

在 var/lib/mysql 中我找不到用于日志的 mysql.sock 文件。但我的默认套接字指向 var/lib/mysql/mysql.sock

我的mysql版本(5.5)

如果我输入命令

mysql --version 它显示

mysql Ver 14.14 Distrib 5.5.38,适用于 Linux (x86_64),使用 readline 5.1

请建议我该怎么做。我不时收到此错误,我的网站在几个小时内运行良好,一段时间后我收到此错误,所以请建议我如何永久解决此问题。

如果您需要任何其他详细信息,请列出我。

提前致谢。

【问题讨论】:

【参考方案1】:

问题主要是由于处理速度和内存空间较低,所以我进行了交换,这清除了服务器中的一些空间,并且成功了。

【讨论】:

【参考方案2】:

您使用哪个用户连接到数据库,您使用的是 root 用户,尝试创建新用户,将所有私有权限授予新用户,并在 local.xml 文件中使用该用户连接到该用户。

谢谢

【讨论】:

嗨 Moshin 将我的数据库导入我的实例后,我创建了一个新用户并授予该用户所有权限并修改了我的 local.xml 文件,但此错误仍在发生。 请给我一个答案,这个错误正在杀死我。 @user3532653 抱歉。我对此一无所知。这不属于我的专业领域。【参考方案3】:

是权限问题,尝试给mysql文件夹和mysql数据文件夹完全权限(777),

如果这也不起作用,请尝试重新安装 mysql。

【讨论】:

@Moshin 你能不能给我命令来改变mysql和mysql数据文件夹。我试过 sudo chown -R 777 mysql:mysql /data/mysql 但它没有显示这样的文件或文件夹。跨度> 试试 sudo chmod -R 777

以上是关于Amazon ec2 linux实例mysql未连接的主要内容,如果未能解决你的问题,请参考以下文章

Amazon Linux EC2 实例上的 uWSGI 安装异常

Amazon EC2安装mysql多实例并配置主从复制

使用 MySQL Workbench 通过 EC2 实例连接到 Amazon RDS 实例

使用 MySQL Workbench 安全组通过 EC2 实例连接到 Amazon RDS 实例

text 如何使用Apache,PHP,MySQL设置Amazon Web Services EC2实例

在启动 Amazon EC2 Linux 实例时自动挂载 EBS 卷