Чому я не можу зупинити службу MySQL на Debian?


11

Я просто намагався модернізувати з debian скрап на нестабільний, замінивши "стиснути" на "нестабільний" в /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.

Відповіді:


6

Спробуйте це:

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

  2. mysql -u root -p password є оригінальним паролем кореня 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

Це виправлення, і це міркування, якщо ви зацікавлені.


Як було сказано нижче, це повинно бутиGRANT ALL PRIVILEGES ON *.*
Дейв,

2

Оновлення відповіді. На кроці 3 мені довелося скористатися

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

Приблизно після періоду після "ВКЛ" є зірочки. Працював для 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 (not kill -9) до процесу mysqld, використовуючи ім'я шляху файлу .pid у такій команді:

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

Ця частина: cat /mysql-data-directory/host_name.pidповертає вміст файлу, який є ідентифікатором процесу.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.