MySQL 无法启动

MySQL 无法启动

我有一个在 Amazon Linux AMI 上运行的 Amazon EC2 实例,它是一个微型实例。我想在我的服务器上安装 Django,所以我输入了以下命令

wget http://www.mlsite.net/blog/wp-content/uploads/2008/11/go
wget http://www.mlsite.net/blog/wp-content/uploads/2008/11/django.conf
chmod 744 go
./go

做完这些之后,我就sudo service httpd restart跑去sudo service mysqld restart

以下是 mysqld 出现的结果:

Stopping mysqld:                                           [  OK  ]
MySQL Daemon failed to start.
Starting mysqld:                                           [FAILED]

于是我删除了 django 文件/usr/local/python2.6.8/site-packages/django_registration.egg ,然后尝试查找错误,发现在我的 /etc/my.cnf套接字中,它说socket=/var/lock/subsys/mysql.sock所以我去了/var/lock/subsys/,但没有mysql.sock。我尝试使用 vim 创建一个,但仍然不起作用。然后我检查了错误日志,它说

120712 20:33:11 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
120712 20:33:15 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

更新:

我输入了以下命令:

cd /var/lib/mysql/
touch mysql.sock
chmod +x mysql.sock
chown mysql:mysql -R *

但它仍然不起作用......

所以我现在很困惑。我知道这与mysql.sock

如果您知道造成这种情况的原因,请告诉我?我的服务器上有一个 wordpress 网站,所以我需要 MySQL 才能工作。谢谢!

答案1

检查go下载并执行的脚本,我发现以下几行:

# Change the MySQL data directory
sed -e 's!/var/lib/mysql$!/mnt/ebs/mysql!' -i /etc/my.cnf

这实际上改变了您的 mysql 数据目录(datadir设置),因此您无法访问任何以前创建的数据库(如 wordpress 数据库)。

我大胆猜测,mysqld 无法访问/mnt/ebs/mysql,因此无法启动。尝试将其改回/var/lib/mysql。但是,这可能会干扰您的 django。如果您让 django 配置的 mysql 运行,您始终可以添加第二个 my.cnf,使用另一个名称和其他 tcp 端口,并运行两个具有不同配置的 MySQL 服务器。

套接字错误消息表示 MySQL 服务器未运行。不要尝试通过放置文件来模拟套接字。

go脚本还对 my.cnf 进行了一些更改,这可能会造成问题。请自己查看 go 文件并尝试撤消所做的更改。

如果以上方法均无帮助,您可以尝试从命令行手动启动 mysqld 进程,使用与服务脚本相同的参数,加上添加--verbose并发布其输出。

答案2

好的,我明白了,感谢 @escitalopram,所以我会接受他的回答!好的,django 将我的 MySQL 数据目录从 更改为/var/lib/mysql,因此在我的 中/mnt/ebs/mysql,它说/etc/my.cnf/etc/my.cnf

datadir=/mnt/ebs/mysql然后我将其改为datadir=/var/lib/mysql。一切正常。我重新启动了 MySQL,希望看到红色的 [FAILED] 消息,但我得到的是 [OK]。另外,我的套接字乱了,/etc/my.cnf但我已经修复了!

答案3

我在亚马逊 e2c 服务器上也遇到了同样的情况

我也做了同样的事情:

 cd /var/lib/mysql/
    sudo touch mysql.sock
    sudo chmod +x mysql.sock
    sudo chown mysql:mysql -R *

重新启动服务器,
然后:

sudo /etc/init.d/mysqld start

检查mysql:

mysql -u root -p

请注意,这不会解决问题。但它会让您有机会访问数据并转移到可靠的服务器

相关内容