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

Установка mtop на ubuntu 08.04

Я устанавливаю mtop на ubuntu 8.04 Mysql работает.

В процессе установки появляется сообщение:

Access denied for user 'root'@'localhost' (using password: NO)

(увидеть ниже)

Я подозреваю, что мне нужно как-то разрешить доступ от root пользователя unix к root учетной записи mysql?

Какие шаги правильные?

$ sudo aptitude install mtop
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Reading extended state information      
Initializing package states... Done
Building tag database... Done      
The following NEW packages will be automatically installed:
  libcurses-perl 
The following packages have been kept back:
  linux-image-server linux-server pm-utils 
The following NEW packages will be installed:
  libcurses-perl mtop 
0 packages upgraded, 2 newly installed, 0 to remove and 3 not upgraded.
Need to get 0B/168kB of archives. After unpacking 664kB will be used.
Do you want to continue? [Y/n/?] y
Writing extended state information... Done
Preconfiguring packages ...
Selecting previously deselected package libcurses-perl.
(Reading database ... 36744 files and directories currently installed.)
Unpacking libcurses-perl (from .../libcurses-perl_1.13-1_i386.deb) ...
Selecting previously deselected package mtop.
Unpacking mtop (from .../mtop_0.6.6-1.2_all.deb) ...
Setting up libcurses-perl (1.13-1) ...
Setting up mtop (0.6.6-1.2) ...
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
dpkg: error processing mtop (--configure):
 subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
 mtop
E: Sub-process /usr/bin/dpkg returned an error code (1)
A package failed to install.  Trying to recover:
Setting up mtop (0.6.6-1.2) ...
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
dpkg: error processing mtop (--configure):
 subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
 mtop
Reading package lists... Done             
Building dependency tree       
Reading state information... Done
Reading extended state information      
Initializing package states... Done
Writing extended state information... Done
Building tag database... Done             

Редактировать: Прочитав отчет об ошибке на панели запуска, я решил использовать аналогичный инструмент. mytop в старых редакциях ubuntu.

Эта ошибка описывает некоторые обходные пути и даже альтернативные (PPA) пакеты:

https://bugs.launchpad.net/ubuntu/+source/mtop/+bug/77980

Сначала откройте клиент mysql, используя свою учетную запись root:

mysql -u root -p

Затем удалите пароль root только для localhost и сбросить привилегии:

UPDATE mysql.user SET Password=PASSWORD('') WHERE User='root' AND Host='localhost';FLUSH PRIVILEGES;

Теперь установите mtop, например:

sudo aptitude install mtop

После установки верните свой старый пароль:

UPDATE mysql.user SET Password=PASSWORD('oldpassword') WHERE User='root' AND Host='localhost';FLUSH PRIVILEGES;

@JamesLawrie: Я настоятельно рекомендую не указывать свой пароль непосредственно команде, использование только -p запросит ваш пароль, что предотвращает его регистрацию в истории вашей оболочки, см. 5.3.2.2. Рекомендации для конечных пользователей по защите паролем

@JamesLawrie: Указание доступа только к локальному хосту улучшает аспект безопасности. В вашем примере вы используете '%' что позволит удаленный рут доступ без пароля!

Хотя, в конце концов, исправление этой ошибки, вероятно, будет лучшим подходом: https://bugs.launchpad.net/ubuntu/+source/mtop/+bug/77980

Один из хакерских и ужасных способов исправить это - сначала удалить пароль root MySQL для localhost, а затем снова добавить его.
mysql -u root -pwhatever
UPDATE user SET Password=PASSWORD('') WHERE User='root' AND Host='%';
Установите вашу программу
UPDATE user SET Password=PASSWORD('whatever') WHERE User='root' AND Host='%';
После его установки где-то должен быть файл конфигурации с данными для входа.