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的套接字中,它说

[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 才能工作。谢谢!

4

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

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

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

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

于 2012-10-17T23:19:13.087 回答
0

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

datadir=/mnt/ebs/mysql我把它改成了datadir=/var/lib/mysql. 一切正常。我重新启动了 MySQL,希望看到红色的 [FAILED] 消息,但我得到了 [OK]。另外,我的插座坏了,/etc/my.cnf但我已经修好了!

于 2012-10-17T23:45:40.813 回答