Разработка

Очистка базы битрикс виртуальная машина перед повторной установкой

Очистка базы битрикс виртуальная машина перед повторной установкой

В MySQL на CentOS 7 вы можете получить список всех баз данных с помощью команды:

Шаг 1: Подключитесь к MySQL

 Выполните команду в терминале для входа в MySQL:
mysql -u <имя_пользователя> -p
 Введите пароль для пользователя.

Шаг 2: Просмотрите список баз данных

 После подключения выполните SQL-запрос:

sql

SHOW DATABASES;
 Это выведет список всех доступных баз данных.


 Чтобы очистить базу данных в CMS "1С-Битрикс" на сервере с CentOS 7 и устранить ошибку, выполните следующие шаги:

Шаг 1: Подключение к серверу базы данных

-

	 Определите тип базы данных, используемой в Bitrix (чаще всего это MySQL/MariaDB). Если не уверены, проверьте настройки подключения в файле `dbconn.php`, который находится в корне проекта.





-

	 Подключитесь к серверу базы данных:
mysql -u <имя_пользователя> -p
	 Введите пароль для указанного пользователя.

Шаг 2: Удаление базы данных

-

	 Посмотрите список баз данных:



 sql
SHOW DATABASES;
-

	 Найдите базу данных, указанную в ошибке (`db5`), и удалите её:



 sql
DROP DATABASE db5;
-

	 Если нужно создать новую пустую базу данных:



 sql Скопировать

  Закрыть блок
CREATE DATABASE new_db5;

Шаг 3: Очистка только содержимого базы данных (если требуется)

 Если вы хотите очистить базу данных без её удаления, выполните:


-

	 Переключитесь на целевую базу данных:



 sql
USE db5;
-

	 Удалите все таблицы:



 sql
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS `таблица1`, `таблица2`, ...;
SET FOREIGN_KEY_CHECKS = 1;
 Или автоматически:

sql

   SET FOREIGN_KEY_CHECKS = 0;
   SET @tables = NULL;
   SELECT GROUP_CONCAT('`', table_name, '`') INTO @tables
   FROM information_schema.tables
   WHERE table_schema = 'db5';
   SET @query = CONCAT('DROP TABLE ', @tables);
   PREPARE stmt FROM @query;
   EXECUTE stmt;
   DEALLOCATE PREPARE stmt;
   SET FOREIGN_KEY_CHECKS = 1;

Шаг 4: Проверка прав доступа

-

	 Убедитесь, что пользователь базы данных имеет права на создание, изменение и удаление баз данных:



 sql
GRANT ALL PRIVILEGES ON db5.* TO '<имя_пользователя>'@'localhost';
FLUSH PRIVILEGES;
-

	 Если вы изменили базу данных, обновите настройки в файле `dbconn.php`.

Шаг 5: Повторная установка

 Теперь вы можете повторить установку, указав либо очищенную базу данных, либо новую.







 На виртуальной машине Bitrix (Bitrix Environment) на CentOS 7, пользователь `root` MySQL обычно создаётся автоматически при установке. Вот как его найти и использовать:

1. Проверка root-пользователя MySQL

- По умолчанию `root` MySQL создаётся с локальными привилегиями, доступен только с сервера.

- Данные для входа находятся в системных файлах конфигурации.

2. Файл с паролем для MySQL root

 Bitrix VM хранит пароль для пользователя `root` MySQL в защищённом конфигурационном файле.


-

	 Проверьте файл `/root/.my.cnf`:
 cat /root/.my.cnf
	 Если файл существует, он содержит логин и пароль. Например:



 ini
 [client]
 user=root
 password=ваш_пароль
-

	 Если файл есть, подключитесь к MySQL без ввода пароля:
 mysql

3. Если пароль недоступен

 Если файл `/root/.my.cnf` отсутствует или не содержит данных:


- Перейдите в командную строку MySQL, запустив сервер в безопасном режиме:
 systemctl stop mysql
 mysqld_safe --skip-grant-tables &
- Подключитесь без пароля:
 mysql -u root
- Сбросьте пароль `root`:sql
 USE mysql;
 UPDATE user SET authentication_string=PASSWORD('новый_пароль') WHERE User='root';
 FLUSH PRIVILEGES;
- Перезапустите MySQL:
 killall mysqld
 systemctl start mysql

4. Дополнительные файлы конфигурации

 Проверьте следующие файлы, где могут быть хранимы данные:


- `/etc/my.cnf`

- `/etc/mysql/my.cnf`

5. Консоль управления Bitrix

 Bitrix Environment предоставляет утилиты для управления базами данных:


- Войдите в консоль Bitrix:  Закрыть блок
 /opt/webdir/bin/mysql
- Это автоматически подключает вас как пользователя с правами.

Чтобы выйти из редактора MySQL, выполните одну из следующих команд:

-

	 Обычный выход:



 sql
exit;
	 или



 sql Скопировать

  Закрыть блок
quit;
-

	 Горячая клавиша: Нажмите Ctrl + D на клавиатуре. Это завершит сеанс MySQL.









 Чтобы выйти из редактора MySQL, выполните одну из следующих команд:


-

	 Обычный выход:



 sql Скопировать

  Закрыть блок
exit;
	 или



 sql Скопировать

  Закрыть блок
quit;
-

	 Горячая клавиша: Нажмите Ctrl + D на клавиатуре. Это завершит сеанс MySQL.








 Если вы забыли пароль для авторизации в админ-панели Bitrix, вы можете сбросить его, следуя этим шагам:

1. Авторизация через базу данных

 Вы можете изменить пароль администратора прямо в базе данных.

Шаги:

-

	 Подключитесь к базе данных:



  Закрыть блок
mysql -u root -p
-

	 Выберите базу данных сайта:



 sql Скопировать

  Закрыть блок
USE <название_вашей_базы_данных>;
-

	 Найдите пользователя, у которого хотите сбросить пароль:



 sql Скопировать

  Закрыть блок
SELECT ID, LOGIN, EMAIL FROM b_user;
-

	 Установите новый пароль (замените `новый_пароль`):



 sql Скопировать

  Закрыть блок
UPDATE b_user SET PASSWORD = MD5('новый_пароль') WHERE LOGIN = 'admin';
	 Если вы не знаете логин, замените его на подходящее значение из предыдущего запроса.







-

	 Выйдите из MySQL:



  Закрыть блок
exit;
 Теперь вы можете войти в админку с новым паролем.

2. Сброс через командную строку (Bitrix VM)

 Если вы используете виртуальную машину Bitrix, выполните следующие действия:


-

	 Откройте консоль Bitrix:



  Закрыть блок
/opt/webdir/bin/bx
-

	 Используйте утилиту для управления пользователями, чтобы сбросить пароль:



  Закрыть блок
php /bitrix/modules/main/admin/update_user_password.php --login=admin --password=новый_пароль
-

	 Подтвердите, что пароль успешно изменён.

3. Сброс через файл restore_admin.php

 Вы можете создать PHP-скрипт для сброса пароля:


-

	 Создайте файл `restore_admin.php` в корне сайта:
<?php
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
$user = new CUser;
$fields = array(
   "PASSWORD" => "новый_пароль",
   "CONFIRM_PASSWORD" => "новый_пароль",
);
$user->Update(1, $fields); // 1 — ID администратора (проверьте в базе данных)
if ($user->LAST_ERROR) {
   echo "Error: " . $user->LAST_ERROR;
} else {
   echo "Password changed successfully.";
}
?>
-

	 Запустите его через браузер:
http://ваш_сайт/restore_admin.php
-

	 Удалите файл после успешного выполнения:



  Закрыть блок
rm restore_admin.php

4. Восстановление через email

 Если включено восстановление пароля по email, используйте форму восстановления на странице входа:


- Нажмите "Забыли пароль?".

- Укажите email администратора.

- Проверьте почту для ссылки сброса пароля.