Сервер Mysql установлен нормально, используя следующую команду:
sudo apt-get install mysql-server
Во время установки мне было предложено выбрать пароль root. После установки я смог войти в mysql monitor с помощью этой команды:
mysql -u root -p
и при появлении запроса я ввел пароль и успешно вошел в систему.
Когда я перезагружаю свой сервер, а затем пытаюсь войти в mysql monitor, после ввода пароля я получаю эту ошибку:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
Когда я смотрю в /var/run/mysqld/
Я не вижу ни одного файла с именем mysqld.sock
. Раньше перед перезагрузкой в этом месте находился файл с таким именем. Он также был выделен красным в моей клиентской программе оболочки (mRemoteNG).
Если я попытаюсь создать этот файл, выполнив:
sudo touch mysqld.sock
Он создается, но не выделяется красным цветом, и когда я снова пытаюсь войти в систему, я получаю ту же ошибку, что и раньше.
Я пытался удалить и переустановить mysql и mysql-server бесчисленное количество раз, и каждый раз возникала одна и та же проблема.
Я также пробовал настроить и запустить службу mysql, и это не имело никакого значения.
Мне предлагается выбрать пароль только при первой установке mysql-server на чистой установке Ubuntu. После этого всякий раз, когда я удаляю и переустанавливаю его, он не предлагает мне выбрать пароль, а просто говорит, что он был успешно установлен.
Как правильно установить mysql-сервер, чтобы он всегда был там даже после перезагрузки сервера?
Способ получить mysql-server
установлен и запущен на Debian или Ubuntu буквально apt-get install mysql-server
.
Если это не сработает, у вас есть другая проблема, лучше всего решить ее, просмотрев журналы и попытавшись выяснить, почему он не запускается - проблема абсолютно не как вы его установили.
Убедитесь, что он настроен для правильного запуска после перезагрузки. Обычно это означает запуск «update-rc.d mysqld defaults» (или что-то очень похожее). update-rc.d создаст символические ссылки из /etc/init.d в каталоги сценариев запуска, например, /etc/rc3.d.
Я не знаю, запускается ли mysqld с Upstart в вашей версии Ubuntu. В этом случае будет аналогичный процесс для загрузки сценария запуска mysqld в / etc / init.
Сначала удалите созданный вами файл mysqld.sock - сервер создаст его автоматически, и наличие там файла может привести к тому, что он больше не запустится.
Установите его с помощью apt-get install mysql-server (как вы сказали).
Перезагрузка. Если он не запускается после перезагрузки, выполните "sudo /etc/init.d/mysql start"
Убедитесь, что он сейчас работает. Если нет, поищите в / var / log / mysql и /var/log/daemon.log сообщения об ошибках.
Чтобы он всегда запускался при загрузке, запустите "update-rc.d mysql defaults"
В зависимости от дистрибутива вам не нужно вручную создавать файл сокета.
Используйте chkconfig (CentOS):
chkconfig --level 345 mysqld on
Или создайте символическую ссылку на уровни запуска, на которых должна выполняться служба:
# Mysql Startup
ln -s /etc/init.d/mysqld /etc/rc.d/rc3.d/S85mysqld
ln -s /etc/init.d/mysqld /etc/rc.d/rc4.d/S85mysqld
ln -s /etc/init.d/mysqld /etc/rc.d/rc5.d/S85mysqld
# MySQL clean shutdown
ln -s /etc/init.d/mysqld /etc/rc.d/rc0.d/K85mysqld
ln -s /etc/init.d/mysqld /etc/rc.d/rc6.d/K85mysqld
Когда вы говорите, что пытались запустить / остановить службу, но это ни в чем не сработало, вы имеете в виду, что: ничего не произошло с точки зрения автоматического запуска после перезагрузки, или что ничего не произошло с точки зрения запуска службы mysql период?
РЕДАКТИРОВАТЬ: только что понял, что вы пометили сообщение с помощью Ubuntu, сценарии выскочки Checkout Ubuntu, если вы используете 10.04+, похоже, что aptitude должен был добавить его для вас после установки. Также проверьте журналы в / var / log / mysql (d), если вы думаете, что он настроен на автозапуск, но не может этого сделать.