10

Я просто попытался перейти с debian squeeze на unstable, заменив squeeze на unstable в /etc/apt/sources.list . Обновление прошло гладко, за исключением MySQL, который не удался, потому что не мог остановить MySQL.

/etc/init.d/mysql stop просто возвращает, что это не удалось, но если я пытаюсь получить статус с /etc/init.d/mysql status он выдает мне эту ошибку:

me@debian:~$ sudo /etc/init.d/mysql status
/usr/bin/mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'debian-sys-maint'@'localhost' (using password: YES)'

MySQL работает нормально, и я проверил разрешения для debian-sys-maint в phpmyadmin, и ему разрешено делать все, но подключаться только с localhost .

3 ответа3

6

Попробуй это:

  1. sudo cat /etc/mysql/debian.cnf и найдите пароль, указанный в разделах [client] и [mysql_upgrade]

  2. mysql -u root -p password являющийся исходным паролем root MySQL

  3. GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY '*the password obtained from step 1*';

  4. /etc/init.d/mysql restart

Это исправление, и это обоснование, если вам интересно.

2

Обновление к ответу. На шаге 3 мне пришлось использовать

GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'the password obtained from step 1';

Вокруг периода после "ON" появляются звездочки. Работал на MySql 5.1

1

Справочное руководство MySQL говорит, что вы можете сделать это:

  1. Войдите в систему как пользователь Unix, от имени которого работает сервер mysqld (например, mysql).
  2. Найдите файл .pid который содержит идентификатор процесса сервера. Точное местоположение и имя этого файла зависят от вашего дистрибутива, имени хоста и конфигурации. Распространенными местами являются /var/lib/mysql/ , /var/run/mysqld/ и /usr/local/mysql/data/ . Как правило, имя файла имеет расширение .pid и начинается либо с mysqld либо с имени хоста вашей системы.

    Вы можете остановить сервер MySQL, отправив обычное kill (не kill -9) процессу mysqld, используя путь к файлу .pid в следующей команде:

,

kill cat `/mysql-data-directory/host_name.pid`

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .