Автор Тема: Проблема с подключением к базе (Mysql на p6\t6) [решено]  (Прочитано 3860 раз)

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Решил поднять тему в связи с тем, что второй день по непонятной причине невозможно подключиться к базе без волшебного заклинания для конфига мускула в чруте в виде "skip-grant-tables". Работает, зараза, только так. Если параметр закоментировать, то все привет, сайт не работает, коннекта до базы нет.
До этого все работало без проблем (при установке server light все было сделано один раз и работало без этого параметра), началось после того, как пропал трафик на канале у прова, по которому сайт отдается в Сеть. Ну, и пока выяснял (вырубал сервер в том числе, раз перегружал - обновления накатывал, в т.ч. и ядерные), эта зараза начала кочевряжиться. С чем связанно не могу понять, попробовал накатить мускул из t6, обновил систему оттуда (пакетов оказалось не так уж и много). Проблема все та же. Без записи в конфиге цепляться к базе не хочет. В логах нет и намека на ошибки запуска или чего-либо подозрительного. С базой всё, судя по работающему сайту и форуму, тоже всё нормально (поиск в гугле по этой проблеме вывел на случай, когда у человека была повреждена база mysql).
"Что здесь происходит ?" (с)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
а если попробовать посредством консольки mysql подключиться, что пишет ?
mysql -u <user> -p
При необходимости, там ещё можно хост/порт/сокет/базу указать в параметрах.

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
а если попробовать посредством консольки mysql подключиться, что пишет ?
mysql -u <user> -p
При необходимости, там ещё можно хост/порт/сокет/базу указать в параметрах.
Если с активным параметром, то заходит под любым юзером (собственно, так и должно быть, этот параметр часто используется для восстановления рутовского пароля доступа к базе). Если параметр неактивен, то пишет [... access denied for user "user@localhost" ...] доступа (для любого валидного пользователя).

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Проблема похожа на эту, но с базой, вроде бы, все в порядке. т.к. цепляется юзером (не рутом, само собой, а специально заведенным).

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
Если с активным параметром, то заходит под любым юзером (собственно, так и должно быть, этот параметр часто используется для восстановления рутовского пароля доступа к базе).
Я знаю.
Если параметр неактивен, то пишет [... access denied for user "user@localhost" ...] доступа (для любого валидного пользователя).
Меня именно фраза об ошибке интересовала дословно. Вопрос дальше.

mysql> use mysql;
mysql> select Host,User from user;

что показывает ? Там localhost в Host встречается ?
« Последнее редактирование: 22.09.2012 15:22:57 от asy »

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Если параметр неактивен, то пишет [... access denied for user "user@localhost" ...] доступа (для любого валидного пользователя).
Меня именно фраза об ошибке интересовала дословно. Вопрос дальше.

mysql> use mysql;
mysql> select Host,User from user;

что показывает ? Там localhost в Host встречается ?
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select Host,User from user;
+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| 127.0.0.1 | mysql            |
| 127.0.0.1 | root             |
| debian    | root             |
| localhost | debian-sys-maint |
| localhost | root             |
+-----------+------------------+
5 rows in set (0.00 sec)

mysql>
Хм... Неужели юзер пропал? Но я именно под ним (специально заведенным) все эти манипуляции проделал.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
Хм... Неужели юзер пропал?
Даже так ? Я то предполагал, что права для 127.0.0.1 есть, а для localhost отсутствуют, а у MySQL резолвер заработал. У него так раньше бывало, с тех пор делаю для hostname и ip всегда.
Но я именно под ним (специально заведенным) все эти манипцляции проделал.
то есть, с вновь заведённым заработало ?

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Этот юзер, заведенный на этапе установки сервера (давненько уж это было). Вот под ним я все эти манипулиции проделал сейчас. И под этими же данными происходит соединение с базой у фреймворка и форумного движка.

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Я то предполагал, что права для 127.0.0.1 есть, а для localhost отсутствуют, а у MySQL резолвер заработал. У него так раньше бывало, с тех пор делаю для hostname и ip всегда.
Это как ?

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Рутом не цепляется, если опцию с привелегиями убрать ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
Я то предполагал, что права для 127.0.0.1 есть, а для localhost отсутствуют, а у MySQL резолвер заработал. У него так раньше бывало, с тех пор делаю для hostname и ip всегда.
Это как ?
Ну, то есть, он когда с ip соедиенение рассматривал, когда с ревесом отрезолвленным. Но это совсем давно было. Просто запомнилось. Если заведено было или/или, то оно и работало от случая к случаю. Кстати, судя по табличке, для root тоже сделано и для root@localhost, и для root@127.0.0.1. Кстати, там можно ещё пароль посмотреть, совпадают ли хэши. Да и просто перезавести пароль для root:

update user set password=PASSWORD("qwerty") where User='root';
flush privileges;

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Еще, похоже, есть какой-то косяк в двух таблицах базы. Заключается это в том, что, например, в пхпмайадмине видно данные таблицы, данные таблиц на сайте используются, а названий этих таблиц, как и статистики не отображается. Количество столбцов только показывается, то бишь, даже зайти посмотреть структуру этих столбцов под пхпмайадмином не представляется возможным. Кажись придется искать бакап более ранний. В любом случае, благодарю за ценное замечание.

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Я то предполагал, что права для 127.0.0.1 есть, а для localhost отсутствуют, а у MySQL резолвер заработал. У него так раньше бывало, с тех пор делаю для hostname и ip всегда.
Это как ?
Ну, то есть, он когда с ip соедиенение рассматривал, когда с ревесом отрезолвленным. Но это совсем давно было. Просто запомнилось. Если заведено было или/или, то оно и работало от случая к случаю. Кстати, судя по табличке, для root тоже сделано и для root@localhost, и для root@127.0.0.1. Кстати, там можно ещё пароль посмотреть, совпадают ли хэши. Да и просто перезавести пароль для root:

update user set password=PASSWORD("qwerty") where User='root';
flush privileges;
Ага, пароль починил. Запустил мускул в обычном режиме. Сейчас пользователя еще восстановлю вместе с паролем.

Оффлайн asy

  • alt linux team
  • ***
  • Сообщений: 8 370
Еще, похоже, есть какой-то косяк в двух таблицах базы. Заключается это в том, что, например, в пхпмайадмине видно данные таблицы, данные таблиц на сайте используются, а названий этих таблиц, как и статистики не отображается.
Про phpmyadmin я не знаю ничего, то есть, слышал и видел, но не ставил и не пользовался. Всегда консольным mysql пользуюсь. Консолькой таблицы эти видны ? Хотя, если пользователи пропали, это уже какое-то повреждение системной базы (mysql которая). Значит, и пользовательская база пострадать могла.

Кстати, в p6 mysql-workbench есть, и, даже, обновился недавно. Можно им попробовать посмотреть, если к базе снаружи доступ есть.
« Последнее редактирование: 22.09.2012 16:37:12 от asy »

Оффлайн ksa

  • Модератор глобальный
  • *****
  • Сообщений: 9 049
Про phpmyadmin я не знаю ничего, то есть, слышал и видел, но не ставил и не пользовался. Всегда консольным mysql пользуюсь. Консолькой таблицы эти видны ? Хотя, если пользователи пропали, это уже какое-то повреждение системной базы (mysql которая). Значит, и пользовательская база пострадать могла.

Кстати, в p6 mysql-workbench есть, и, даже, обновился недавно. Можно им попробовать посмотреть, если к базе снаружи доступ есть.
Я совсем забыл, что импортировал базу с выделенного сервера (когда он еще под дебианом крутился), поэтому лишние записи в выводе и обнаружились. Может это и явилось причиной разлома привелегий, не уверен, конечно. Тем не менее удалил эти лишние записи из хостов и юзеров.