|
|
|
| У меня такая проблема. После проведения внешнего аудита компьютера (компьютер сканировался с Интернета с помощью программы xSpider, файерволл на компе был специально отключен) появилась следующая проблема. На компьютере был установлен локальный web-сервер для тестирования скрипта Internet-магазина. После тестирования возникла следующая проблема:
При загрузке страницы Интернет-магазина возникает ошибка:
Warning: mysql_connect() [function.mysql-connect]: Host 'localhost' is not allowed to connect to this MySQL server in C:\Sites\home\localhost\www\shop\includes\database\mysql.php on line 13
Host 'localhost' is not allowed to connect to this MySQL server
Также невозможно подсоединиться к MySQL-серверу с помощью стандартных утилит mysql.exe, mysqladmin.exe, winmysqladmin.exe, программы MySQLAdministrator. Во всех случаях одна ошибка:
Host 'localhost' is not allowed to connect to this MySQL server
То есть MySQL Server не дает соединиться с ним с узла localhost. До тестирования никаких ошибок в работе сервера не возникало.
Сброс пароля пользователя root на localhost не помогло.
Конфигурация сервера:
ОС – Windows XP Professional SP2
mysql-4.1.12-win32
php-5.0.5-Win32
apache_2.0.54-win32-x86-no_ssl
mysql-administrator-1.1.2-win
phpMyAdmin-2.6.4-pl1
winmysqladmin-3.23.36
Очень прошу помочь Вас в решении моей проблемы. | |
|
|
|
|
|
|
|
для: Nickolay
(08.10.2005 в 13:54)
| | Зайдите в phpMyAdmin, выберите пункт привилегии на главной странице. Посмотрите пользователей - в поле Хост должен везде стоять localhost, если видите там % или IP-адреса - изменяйте на localhost. | |
|
|
|
|
|
|
|
для: cheops
(08.10.2005 в 14:35)
| | Через PhpMyAdmin тоже ошибка:
phpMyAdmin попытался соединиться с сервером MySQL, но сервер отверг соединение. Проверьте имя хоста, пользователя и пароль в config.inc.php.
Ответ MySQL:
#1130 - Host 'localhost' is not allowed to connect to this MySQL server
Хотя до сканирования сервера, все было нормально, config.inc.php я не менял. | |
|
|
|
|
|
|
|
для: Nickolay
(10.10.2005 в 08:15)
| | А вы из под какого пользователя заходите в phpMyAdmin? Доступен ли root? Можно снести MySQL, уничтожить директорию C:/mysql/data/mysql - при этом остальные базы данных в C:/mysql/data/ - поставить MySQL поверх - это восстановит пользователя root. | |
|
|
|
|
|
|
|
для: cheops
(10.10.2005 в 14:49)
| | В PhpMyAdmin захожу все под тем же пользователем root/localhost, как и делал это раньше, т.к. у меня всего один пользователь MySQL. А можно не сносить MySQL, и решить проблему другим способом?
Вот еще что:
C:\Server\MySQL\bin>mysqld --skip-grant-tables --console
InnoDB: Error: log file .\ib_logfile0 is of different size 0 10485760 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
051011 9:10:59 [ERROR] Can't init databases
051011 9:10:59 [ERROR] Aborting
Странно, но в my.ini файле стоит размер лог файла innodb_log_file_size=10M
Размер лог файлов в папке .\MySQL\Data действительно logfile0=10240 Кб и logfile1=10240 Кб | |
|
|
|
|
|
|
|
для: Nickolay
(11.10.2005 в 09:05)
| | Улалил я логи MySQL: logfile0 и logfile1
И запустил сервер:
C:\Server\MySQL\bin>mysqld --skip-grant-tables --console
В службах сервер как бы не запущен, но в диспетчере задач процесс mysqld.exe висит - значит сервер все таки запустился.
Интернет-магазин загрузился, но как мне теперь восстановить таблицу host и прописать там localhost?
Кстати, с --skip-grant-tables PhpMyAdmin загрузился (после того как я удалил логи MySQL).
Зашел в меню "Привелегии" - а там ниодного пользователя !!! И создать нового я не могу - не хватает прав. :(
SQL-запрос:
GRANT ALL PRIVILEGES ON * . * TO 'root'@'localhost' IDENTIFIED BY '*********' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;
Ответ MySQL:
#1290 - The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement | |
|
|
|
|
|
|
|
для: Nickolay
(11.10.2005 в 11:41)
| | Поставьте в соседнюю директорию ещё одну копию MySQL. Остановите оба сервера, сделайте резервную копию базы данных mysql повреждённого сервера. А затем скопируйте из директории C:/new_mysql/data/mysql в С:/mysql/data следующие файлы
host.frm
host.MYD
host.MYI
user.frm
user.MYD
user.MYI
|
| |
|
|
|
|
|
|
|
для: cheops
(11.10.2005 в 15:11)
| | Вообщем, удалил логи MySQL - logfile0 и logfile1
Потом запустил Mysqld-сервер с опцией
C:\Server\MySQL\bin>mysqld --skip-grant-tables
Зашел в консольный клиент mysql под root@localhost
Создал пользователя root@localhost:
mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost
-> IDENTIFIED BY '*********' WITH GRANT OPTION;
Теперь все нормально, и в PhpMyAdmin--Привелегии - показывает пользователя
root localhost ALL PRIVILEGES
И ВСЕ РАБОТАЕТ!!!
Но все же спасибо за советы, cheops !!! | |
|
|
|