Назад | Перейти на главную страницу

MySQL не включается

У меня есть экземпляр 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

ОБНОВИТЬ:

I entered these commands:

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

обратите внимание, это не решит проблему. но это даст вам возможность получить доступ к данным и перейти на надежный сервер