У меня есть экземпляр amazon ec2, работающий на AMI Amazon Linux, и его микро-экземпляр. Я хотел установить 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 для работы. Спасибо!
Осмотр 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
и опубликуйте свой результат.
Хорошо, я понял это благодаря @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
но я это уже исправил!
у меня была такая же ситуация на сервере amazon 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
обратите внимание, это не решит проблему. но это даст вам возможность получить доступ к данным и перейти на надежный сервер