mySQL - пароль root? (Невозможно получить доступ к БД)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

ozone baby
Сообщения: 221
ОС: Ubuntu i386/Ubuntu amd64

mySQL - пароль root?

Сообщение ozone baby »

Установил и настроил LAMP - все бы хорошо, но не могу получить доступ к БД. запускаю phpmyadmin:

Код: Выделить всё

Ошибка

Ответ MySQL: Документация
#1045 - Access denied for user 'root'@'localhost' (using password: NO)


Погуглил - попробовал :

Код: Выделить всё

#mysqladmin -u root password ''

Он в ответ то же самое:

Код: Выделить всё

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

Кто-нибудь устанавливал на арче mysql?
Спасибо сказали:
ozone baby
Сообщения: 221
ОС: Ubuntu i386/Ubuntu amd64

Re: mySQL - пароль root?

Сообщение ozone baby »

находил ссылки как менять пароль: пробовал и так:
Кратко:
1. перезапустить mysqld с опцией --skip-grant-tables
2. mysqladmin -h хост -u пользователь password 'новый пароль'

выводит ту же самую ошибку

И так
http://www.opennet.ru/tips/info/1177.shtml
Техника изменения забытого административного MySQL пароля [исправить]

Останавливаем MySQL:
/etc/init.d/mysql stop

Запускаем в режиме без проверки прав доступа:
/usr/bin/mysqld_safe --skip-grant-tables &

Соединяемся как root без пароля:
mysql --user=root mysql

Обновляем пароль:
mysql> update user set Password=PASSWORD('новый пароль') WHERE User='root';
mysql> flush privileges;

Завершаем работу mysqld_safe:
fg
"Ctrl+c"

Запускаем MySQL в обычном режиме.
/etc/init.d/mysql start

при выполнении команды

Код: Выделить всё

UPDATE user SET Password=NULL WHERE Host='localhost' AND User='root';

он пишет
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0

И все равно ничего не меняется..
Спасибо сказали:
Аватара пользователя
cheer
Сообщения: 729
Статус: Самовлюблённый сноб
ОС: archlinux i686-current

Re: mySQL - пароль root?

Сообщение cheer »

Спасибо сказали:
ozone baby
Сообщения: 221
ОС: Ubuntu i386/Ubuntu amd64

Re: mySQL - пароль root?

Сообщение ozone baby »

а вы сами-то читали? там ведь не слова о моей проблеме.
В попытках решить ее, напоролся на еще одни грабли - решил все установить с нуля и удалил содержимое папки /var/lib/mysql, потом деинсталлировал пакет mysql и mysql-clients - потом заново установил mysql - только теперь сервер вообще не запускается :(
В логах написано
080207 17:14:49 mysqld started
InnoDB: The first specified data file ./ibdata1 did not exist:
InnoDB: a new database to be created!
080207 17:14:49 InnoDB: Setting file ./ibdata1 size to 10 MB
InnoDB: Database physically writes the file full: wait...
080207 17:14:50 InnoDB: Log file ./ib_logfile0 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
080207 17:14:50 InnoDB: Log file ./ib_logfile1 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
080207 17:14:50 InnoDB: Started; log sequence number 0 0
080207 17:14:50 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
080207 17:14:50 mysqld ended


Запустил вот этот скрипт
/usr/bin/mysql_install_db
Installing MySQL system tables...
ERROR: 1062 Duplicate entry 'localhost-' for key 1
080207 17:58:14 [ERROR] Aborting

080207 17:58:14 [Note] /usr/sbin/mysqld: Shutdown complete

Installation of system tables failed!

Examine the logs in /var/lib/mysql for more information.
You can try to start the mysqld daemon with:
/usr/sbin/mysqld --skip-grant &
and use the command line tool
/usr/bin/mysql to connect to the mysql
database and look at the grant tables:

shell> /usr/bin/mysql -u root mysql
mysql> show tables

Try 'mysqld --help' if you have problems with paths. Using --log
gives you a log in /var/lib/mysql that may be helpful.

The latest information about MySQL is available on the web at
http://www.mysql.com
Please consult the MySQL manual section: 'Problems running mysql_install_db',
and the manual section that describes problems on your OS.
Another information source is the MySQL email archive.
Please check all of the above before mailing us!
And if you do mail us, you MUST use the /usr/bin/mysqlbug script!

Запуск mysqld по-прежнему ничего не дает((

последняя запись в логах
080207 17:58:57 mysqld started
InnoDB: Log scan progressed past the checkpoint lsn 0 36808
080207 17:58:57 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
InnoDB: Doing recovery: scanned up to log sequence number 0 43655
080207 17:58:57 InnoDB: Starting an apply batch of log records to the database...
InnoDB: Progress in percents: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
InnoDB: Apply batch completed
080207 17:58:57 InnoDB: Started; log sequence number 0 43655
080207 17:58:57 [ERROR] /usr/sbin/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
080207 17:58:57 [ERROR] /usr/sbin/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
080207 17:58:57 [ERROR] Fatal error: Can't open and lock privilege tables: Can't find file: './mysql/host.frm' (errno: 13)
080207 17:58:57 mysqld ended
Спасибо сказали:
Аватара пользователя
cheer
Сообщения: 729
Статус: Самовлюблённый сноб
ОС: archlinux i686-current

Re: mySQL - пароль root?

Сообщение cheer »

что, ни слова? Там в конце есть по настройке MySQL, там написано, как задать руту пароль. Пустой пароль - это серьёзно.
P.S. у вас дата неправильная, сегодня ещё 6 февраля. А все файлы удалены? Что будет по поиску слова "mysql"?
Спасибо сказали:
ozone baby
Сообщения: 221
ОС: Ubuntu i386/Ubuntu amd64

Re: mySQL - пароль root?

Сообщение ozone baby »

а мне пофигу какой пароль в принципе-то) мне ж для программирования нужно.

В общем стер все файлы относящиеся к mysql - в том числе по ошибке mysql.so - библиотека php которая. Переустановил php, файл этот появился, раскомментировал в php.ini строчку, где это расширение подгружается, все равно не работает:

Cannot load mysql extension. Please check your PHP configuration.

Вообще непонятно... Ладно хоть mysqld начал запускаться. Начинаю все больше и больше разочаровываться в арче.. Когда нужно было все руками настраивать, я не так уж был и расстроен - наоборот многое узнал. Но когда тут на пустом месте, какие-то проблемы, которые в других дистрибутивах не проявляются.. Плюс еще и многое подтормаживает. Например Конк - в режиме суперюзера если его запускать, он так долго думает.. И виснет частенько. Думал потеряв в удобстве, выйграю в производительности, дистрибутив же расписывают - легуий и быстрый. Дык у меня что-то все наоборот. Остается только одно преимущество - всегда актуальные пакеты. Хотя как раз может быть и в этом проблема. Разубедите меня)

... /прошло немного времени
С проблемой загрузки расширения разобрался - надо было переустановить пакет libmysqlclient. :huh: В конечном итоге все вернулось на круги своя - надо задать пароль. Идем на в статьи из вики - http://wiki.archlinux.org/index.php/LAMP
Setup MySQL support

Do these steps only if you want MySQL support. Configure MySQL as described here: MySQL

* Edit /etc/php/php.ini (this is in /usr/etc on older systems) to uncomment the following line (By removing ;):

;extension=mysql.so

* You can add minor privileged users for your web scripts by editing the tables found in the mysql database. You have to restart MySQL for changes to take effect. Don't forget to check the mysql/users table. If there's a second entry for root and your hostname is left with no password set, everybody from your host probably could gain full access. Perhaps see next section for these jobs.

* You can get the "error no. 2013: Lost Connection to mysql server during query" message instantly whenever you try to connect to the MySQL daemon by TCP/IP. This is the TCP wrappers system (tcpd), which uses the hosts_access(5) system to allow or disallow connections.

* If you're running into this problem, be sure to add this to your /etc/hosts.allow file:

# mysqld : ALL : ALLOW
# mysqld-max : ALL : ALLOW
# and similar for the other MySQL daemons.

* Notes: The examples above are the simplest case, telling tcpd to allow connections from anywhere. You may wish to use a more-appropriate choice of permissible sources instead of ALL. Just make sure that localhost and the IP address (numeric or DNS) of the interface by which you connect are specified.

* You might also need to edit /etc/my.cnf and comment out the skip-networking line as such:

skip-networking

to

#skip-networking


В общем-то ничего не понятно опять.
И пожалуйста не надо только обвинять в кривых руках - в документации черным по белому написано:
If you have never set a root password for MySQL, the server does not require a password at all for connecting as root. However, it is recommended to set a password for each account.

То есть это - поведение заложенное производителями БД. Я никаких дополнительных телодвижений не производил. Следовательно накосячили разрабы дистрибутива либо глюк в самой БД.
Пожалуйста помогите убрать/задать пароль!!
Спасибо сказали:
Аватара пользователя
cheer
Сообщения: 729
Статус: Самовлюблённый сноб
ОС: archlinux i686-current

Re: mySQL - пароль root?

Сообщение cheer »

http://www.jusupov.com/2008/01/18/how-to-r...n-ubuntu-linux/
Для меня это работает...
Спасибо сказали:
ozone baby
Сообщения: 221
ОС: Ubuntu i386/Ubuntu amd64

Re: mySQL - пароль root?

Сообщение ozone baby »

mysql> UPDATE user SET Password=NULL WHERE User='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)


No comments.
Спасибо сказали:
Аватара пользователя
cheer
Сообщения: 729
Статус: Самовлюблённый сноб
ОС: archlinux i686-current

Re: mySQL - пароль root?

Сообщение cheer »

а что, поле password не not null разве? Если оно not null, то результат и должен быть такой (или ошибка будет, не знаю). Пароль поставь, блин. На хрена выпендриваться? flush у меня тоже такой результат даёт.
Спасибо сказали:
ozone baby
Сообщения: 221
ОС: Ubuntu i386/Ubuntu amd64

Re: mySQL - пароль root?

Сообщение ozone baby »

mysql> UPDATE user SET Password=PASSWORD('abc') WHERE User='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0 Changed: 0 Warnings: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

то же самое. начинаю склоняться к мысли, что дело не в самом мускуле, а в каких-то системных настройках, связанных с хостами-юзерами..(( и я их совершенно не знаю
Спасибо сказали:
iYang
Сообщения: 41
ОС: SuSE 10.3, 11.0

Re: mySQL - пароль root?

Сообщение iYang »

Ладно хоть mysqld начал запускаться. Начинаю все больше и больше разочаровываться в арче.. Когда нужно было все руками настраивать, я не так уж был и расстроен - наоборот многое узнал. Но когда тут на пустом месте, какие-то проблемы, которые в других дистрибутивах не проявляются..

При чем здесь арч? У вас связка из программ, у каждой свои особенности. Например у phpmyadmin в конф файле я бы прописал тип авторизации http, тогда при коннекте выскочит окно для ввода логина-пароля. По умолчанию стоит брать их из того же конф. файла. Потом, когда вы делаете
mysql> UPDATE user SET Password=PASSWORD('abc') WHERE User='root';
Query OK, 0 rows affected (0.00 sec)

перед этим вы выбирали базу командой
mysql> USE mysql;
?
А вообще, если лень разбираться, есть такой проект XAMPP, там "все и сразу".
Спасибо сказали:
ozone baby
Сообщения: 221
ОС: Ubuntu i386/Ubuntu amd64

Re: mySQL - пароль root?

Сообщение ozone baby »

да конечно я выбирал mysql. И типы тип авторизации я тоже выбирал http, вводил пароли - не работает
Спасибо сказали:
Аватара пользователя
(asper
Бывший модератор
Сообщения: 1661
Статус: nano vi sed awk !
ОС: Работает как часы !

Re: mySQL - пароль root?

Сообщение (asper »

Надоели,
Переношу к Админам :)
Сомнительно доброе привидение
Спасибо сказали:
Аватара пользователя
fed71
Сообщения: 2480
ОС: Ubuntu

Re: mySQL - пароль root?

Сообщение fed71 »

Меня с ковырянием мускула очень выручил webmin (http://www.webmin.com/ для его работы требуется perl) через него и прописывал пароли для базы. А все вышеописанное срабатывало не всегда.
Я не знаю кто я. Не помню ни серии своей, ни инвентарного номера...

Мой блог http://fed71.livejournal.com
Спасибо сказали:
ozone baby
Сообщения: 221
ОС: Ubuntu i386/Ubuntu amd64

Re: mySQL - пароль root?

Сообщение ozone baby »

iYang писал(а):
07.02.2008 09:59
При чем здесь арч? У вас связка из программ, у каждой свои особенности.

Арч при том, что только с этим дистрибутивом такая проблема. Причем не у меня одного(на арчлинукс.орг есть точно такая же тема).
Спасибо сказали:
Аватара пользователя
SapFir
Сообщения: 65
ОС: Slackware. Arch

Re: mySQL - пароль root?

Сообщение SapFir »

установили mysql, запустили mysql_install_db, которая установит таблицу разрешений, только потом можно серв запускать
Не ищу лёгких путей
Спасибо сказали:
ozone baby
Сообщения: 221
ОС: Ubuntu i386/Ubuntu amd64

Re: mySQL - пароль root?

Сообщение ozone baby »

По идее этот скрипт запускается автоматически вместе с установкой mysql. Запустил его еще раз, он выдал ошибку:

Код: Выделить всё

sudo mysql_install_db
Installing MySQL system tables...
ERROR: 1062  Duplicate entry 'localhost-' for key 1
080208 10:00:28 [ERROR] Aborting

080208 10:00:28 [Note] /usr/sbin/mysqld: Shutdown complete

Installation of system tables failed!

Examine the logs in /var/lib/mysql for more information.
You can try to start the mysqld daemon with:
/usr/sbin/mysqld --skip-grant &
and use the command line tool
/usr/bin/mysql to connect to the mysql
database and look at the grant tables:

shell> /usr/bin/mysql -u root mysql
mysql> show tables

Try 'mysqld --help' if you have problems with paths. Using --log
gives you a log in /var/lib/mysql that may be helpful.

The latest information about MySQL is available on the web at
http://www.mysql.com
Please consult the MySQL manual section: 'Problems running mysql_install_db',
and the manual section that describes problems on your OS.
Another information source is the MySQL email archive.
Please check all of the above before mailing us!
And if you do mail us, you MUST use the /usr/bin/mysqlbug script!


Видимо в этом вся проблема заключается.
Спасибо сказали:
Аватара пользователя
SapFir
Сообщения: 65
ОС: Slackware. Arch

Re: mySQL - пароль root?

Сообщение SapFir »

Логи читай /var/lib/mysql,
попробуй снести вообще базу mysql, потом запустить mysql_install_db...
На крайний случай можно и поотдельности поставить mysql, httpd, php.
По mysql Поль Дюбуа хороший справочник написал, посмотри там про установку, мож какой-то шаг пропускаешь.
Не ищу лёгких путей
Спасибо сказали:
Аватара пользователя
Atragor
Сообщения: 681
Статус: ...

Re: mySQL - пароль root?

Сообщение Atragor »

Похожая проблема, но на Gentoo. emerge --config dev-db/mysql просит поставить пароль рута, ставлю, но с этим паролем не пускает. mysql_install_db не работает
Installing MySQL system tables...
080209 2:04:53 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
080209 2:04:53 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
Installation of system tables failed!


С опцией --skip-grant-tables менять пароль не разрешает, ссылаясь на эту самую опцию. Таблица user пуста (я подозреваю, там все же что-то должно быть). Переустановка не помогла. Погуглил немного, нашел вот что:
http://calculator.gentoo.ru/node/9654

Если я правильно понял, это баг в текущей версии MySQL; так или иначе откат на старую версию решил проблему.
If you were MEANT to understand it, we wouldn't have called it 'code' © bash.org
Спасибо сказали:
Аватара пользователя
SapFir
Сообщения: 65
ОС: Slackware. Arch

Re: mySQL - пароль root?

Сообщение SapFir »

баг - не баг, но сам ставил на арч, всё в порядке
local/libmysqlclient 5.0.51-1
MySQL client libraries
local/mysql 5.0.51-1
A fast SQL database server
local/mysql-clients 5.0.51-2
MySQL client tools

В user сразу после инсталяции скриптом mysql_install_db должен быть рут, но это при успешном завершении работы скрипта.

2one baby
Проверяем наличие пользователя, под которым будем серв запускать
cat /etc/passwd | grep mysql
mysql:x:89:89::/var/lib/mysql:/bin/false

удаляем базу mysql, в которой не все таблицы инициализированы по причине сбоя mysql_install_db
rm -rf DATADIR/mysql, где в данном случае DATADIR = /var/lib/mysql

Запуск инициализации с привилегиями пользователя mysql
mysql_install_db --user=mysql

Ставим права на DATADIR
chown -R mysql DATADIR
chgrp -R mysql DATADIR
chmod -R go-rwx DATADIR

Запуск ...../mysqld_safe --user=mysql &
Пробуем подключиться как root (изначально пароля нет на эту учетную запись)
mysql -u root
получили доступ к mysql> - ставим пароль рута,
mysql> USE mysql;
mysql> UPDATE user SET Password=PASSWORD('rootpass') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> \q
mysql -p -u root
проверяем установленный пароль.

Теперь можно создать нового пользователя в mysql и делегировать ему права на БД, которую он будет админить
(подключившись как mysql -p -u root)
GRANT ALL ON testbase.* TO 'test_adm'@'localhost' IDENTIFIED BY 'testpass';

Если что-то не так будет при таком сценарии, то ставь mysql отдельно пакманом, дальнейшие действия те же, что выше описаны.
Не ищу лёгких путей
Спасибо сказали:
Аватара пользователя
monesh1
Сообщения: 185
ОС: bluewhite64

Re: mySQL - пароль root?

Сообщение monesh1 »

стандатный логин localhost пароль пустой попробуй у меня так стартанул :console:
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: mySQL - пароль root?

Сообщение KiWi »

Ух ё... Наворотили.
А слабо посмотреть -- в user вообще что-нибудь есть?
Спасибо сказали: