Для того, чтобы переименовать базу данных сайта, работающего под CMS Joomla 3 нужно учесть некоторые, кажущиеся незначительным, но играющие важную роль, делали. В этой статье подробно рассмотрено, как произвести переименование базы данных без создания её дубля или ещё каких хитростей. Для того понадобится доступ к базе данных (для изменения её имени) и к файловому менеджеру (для внесения правок в конфиг-файл Joomla).
Почему нельзя поменять имя базы данных в админке Joomla
При попытке поменять имя базы данных в основных настройках Joomla через админку, ничего не получается сделать. Рассмотрим подробнее, почему.
Откроем в админке вкладку «Сервер» общих настроек Joomla. В разделе «Настройка базы данных» поменяем значение поля «Имя базы данных» и попробуем сохранить изменения:
Если базы данных с новым именем нет на сервере (а её нет, никто её не создавал). К тому же у этой новой базы данных должны совпадать имя пользователя, его пароль и префикс таблиц... В общем, базы данных нет и Joomla выдаст ошибку:
Ошибка
Не удаётся подключиться к базе данных
Что вполне логично. =)
Поэтому решить "в лоб" задачу переименования базы данных не выйдет.
Почему переименованную базу данных нельзя прописать в админке
Выше было описано, чего делать можно, но что не имеет смысла, так как не получится.
Теперь идём на сервер и переименовываем базу данных, например, используя ISP-панель сервера, как описано в → этой статье.
После того, как имя БД изменено, то при попытке загрузить админку, получим то, что сайт (и админка) перестали работать. Потому, что они пытаются получить доступ к базе данных со старым именем и у них это конечно не получается.
Вылазит такая вот ошибка:
Error displaying the error page
Или нечто подобное.
Стало быть сейчас мы имеем базу данных с новым именем, но внести его (имя новой базы данных) через админку не можем, так как админка до сих пор пытается подключиться к базе данных со старым именем.
Вносим изменения в конфиг-файл configuration.php
Joomla напрямую
Всё что осталось, — это прописать имя новой базы данных в конфиг Joomla. Для этого нам потребуется доступ к файлу configuration.php
для внесения в него правок. Можно воспользоваться ISP-manager и отредактировать файл в нём или другим способом (по ftp, ssh или ещё каким способом).
Важно!
Ещё один подвох Joomla в том, что она выставляет права на файл
configuration.php
(chmod)444 [-r--r--r--]
. А этих прав достаточно только для чтения фала, но никак не для записи в него. Поэтому первым делом выставляем chmod644 [-rw-r--r--]
и только после этого начинаем его править.
Для того, чтобы найти файл configuration.php
нужно зайти в корневую директорию сайта (не сервера, а именно сайта), — он там. Точно! =)
Итак, найдя configuration.php
и выставив перво-наперво ему chmod 644 [-rw-r--r--]
, открываем его и ищем строчку
public $db = 'old-name-database';
У меня в конфиге она 18-я. Не думаю, что она будет слишком далеко от начала. Наша задача поменять старое имя на новое и сохранить configuration.php
с новым именем базы данных:
public $db = 'new-name-database';
Ура! Всё заратало! =)
Если всё сделано правильно, то сайт и админка сайта начинают снова открываться и работать.
Вроде написал про все подводные камни при изменении базы данных сайта. Если что-то не получается, значит нужно внимательно проверить совпадение фактического имени БД и того, что прописано в конфиге. Должно получиться. На самом деле, всё очень просто! =)
Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)