Mysql无法通过Amazon EC2上的套接字连接到本地服务器

我在Amazon EC2上打开了我的应用程序(在Rails中)并收到错误 – 因此我检查了日志并且有以下内容:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (111) 

10个小时前,一切正常。 有什么问题? 很多交通? 该应用程序正在Micro Instance上运行。

如何解决这个问题以及将来如何避免这个问题?

非常感谢你

编辑:

 sudo find / -type s --- /tmp/.sock /dev/log /var/lib/apt-xapian-index/update-socket /run/mysqld/mysqld.sock /run/acpid.socket /run/dbus/system_bus_socket /run/udev/control find: `/proc/4739/task/4739/fd/5': No such file or directory find: `/proc/4739/task/4739/fdinfo/5': No such file or directory find: `/proc/4739/fd/5': No such file or directory find: `/proc/4739/fdinfo/5': No such file or directory 

在我的情况下,服务器显然已经在某个时候重新启动了,并且当它确实没有启动时。 我只需键入命令即可启动并运行:

 sudo service mysqld start 

找到你的locate my.cnf文件看到那里的行作为socket = ../../mysql.sock你需要用路径替换路径为

socket = /run/mysqld/mysqld.sock

如果路径匹配,请告诉我

从这里交叉发布我的回复。

我在ec2实例上遇到了同样的问题。 这些说明对我来说非常有用:


Redhat Enterprise Linux – RHEL 5/6 MySQL安装

以root用户身份键入以下命令:

 yum install mysql-server mysql 

Redhat Enterprise Linux – RHEL 4/3 MySQL安装

以root用户身份键入以下命令:

 up2date mysql-server mysql 

启动MySQL服务

要启动mysql服务器,请键入以下命令:

 chkconfig mysqld on /etc/init.d/mysqld start 

设置mysql root密码

键入以下命令为root用户设置密码:

 mysqladmin -u root password NEWPASSWORD 

测试mysql连接

键入以下命令以连接到MySQL服务器:

 $ mysql -u root -p 

在我的情况下,我使用下面的命令:

 project_folder > mysql.server start 

系统返回SUCCESS消息后,它工作正常。

要解决此错误,请先找到您的套接字文件,在终端中运行以下命令

 mysqladmin variables | grep socket 

对我来说,这给了:

 | socket | /var/run/mysqld/mysqld.sock 

然后,在Rails应用程序中添加一行:config / database.yml:

 development: adapter: mysql2 host: localhost username: root password: xxxx database: xxxx socket: /var/run/mysqld/mysqld.sock 

这将解决这个问题。

默认情况下,Amazon Linux AMI上未安装mysql-server 。 使用以下命令安装它:

 $ sudo yum install mysql-server $ sudo chkconfig mysqld on $ sudo /etc/init.d/mysqld start $ mysqladmin -u root password NEWPASSWORD $ mysql -u root -p