Вы понимаете, что вы только что ТС-у всю надежду на восстановление сломали?
Восстановят весь аккаунт из бэкапа :D
Aisamiery, ну если в голове дырка (от предыдущего контрольного выстрела), то да, на сайте в загружаемых посетителями html-документах тоже выполняется код, эти файлы доступны извне, и ссылки на них сразу вываливаются в паблик.
Всё зависит от того, как на сервере реализован запуск интерпретатора.
Бывают разные способы: CGI, FastCGI, mod_php, и пр. и куча разных вариаций.
То есть, львиную долю ресурсов обычно занимает передача кода в обработчик и получение результата.
А сам интерпретатор отрабатывает очень быстро. Просто молниеносно быстро.
Включите выполнение php в файлах html.
Этим убьёте (или по крайней мере контузите) сразу двух зайцев:
- Не поменяется адресация
- Не будет лишних редиректов/реврайтов
Эта фишка вырубается путём создания пользователя без возможности авторизации без пароля.
Вы каким образом создаёте пользователя?
Или же полным удалением плагина:
UNINSTALL PLUGIN unix_socket;
update mysql.user set plugin=null where user='root'; flush privileges;
А разве ТС говорил, что ему неудобно заходить из консоли без ввода пароля? :)
Если указывается "localhost", то это тоже через "unix_socket". И если PhpMyAdmin (или ещё что-то, например, сайт какой-то) работает от пользователя "root", то подключиться к БД под пользователем "root" он сможет без указания пароля.
Если же сайт работает от пользователя "vasya", то подключиться к БД под пользователем "vasya" он сможет без указания пароля.
Для этого, конечно, нужно, чтобы пользователи БД создавались определённым образом (IDENTIFIED VIA unix_socket), что у вас, видимо, происходит по умолчанию.
Почитайте ссылочку выше, там же всё написано, даже примеры есть.
Вот эта приблуда позволяет системным пользователям авторизовываться без указания пароля при подключении через консоль:
Если вы делаете изменения в системной таблице с помощью команды UPDATE, то после этого нужно делать FLUSH PRIVILEGES;
А вообще, для изменения паролей даже есть специальная команда
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('password');
Если всё равно ничего не получается, зайдите через консоль, как вы это делаете "mysql -u root", и покажите, что выдаёт SHOW GRANTS;