MySQL不工作

3

我有一个运行在Amazon Linux AMI上的亚马逊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 restartsudo 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的位置有误。
[mysqld]
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under different user or group, 
# customize your systemd unit file for mysqld according to the
# instructions in http://fedoraproject.org/wiki/Systemd
datadir=/mnt/ebs/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysqld]
default-storage-engine=INNODB

[mysqld]
default-storage-engine=INNODB

[mysqld]
default-storage-engine=INNODB

[mysqld]
default-storage-engine=INNODB

所以我去了 /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工作。谢谢!


是的,你说得对。我是StackExchange的新手,但我认为这应该是一个ServerFault的问题?我会将其移动...谢谢! - user1754527
我的新问题:http://serverfault.com/questions/439540/mysql-not-turning-on - user1754527
2个回答

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运行,您可以始终添加一个具有另一个名称和其他tcp端口的第二个my.cnf,并运行具有不同配置的两个MySQL服务器。

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

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

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


0

好的,我通过@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中出现问题,但我已经修复了它!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接