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