H Некоторые приёмы работы в Битрикс на SQL и BASH. Битрикс логин и пароль к базе данных
Где в CMS хранятся настройки подключения к базе данных? и другие настройки
При разворачивании какого нибудь сайта, веб-приложения на незнакомой CMS, CMF этот вопрос возникает довольно часто. Особенно у новичков. Файлы скопированы, база данных создана и осталось только настроить систему, чтобы скрипты знали, как подключиться к этой созданной базе данных. Да и другие настройки подпилить. Только вот где этот файл?
- можно навскидку посмотреть файлы где нибудь в корне сайта; обычно кофигурационные файлы имеют в своём названии слова conf, configuration и тд; обычно их легко найти;
- можно посмотреть исходники файлов, что где подключается и найти этот файлик, обычно подключается где то в начале скриптов;
- можно посмотреть документацию по продукту; кстати вся эта проблема вовсе и не проблема на этапе инсталляции, так как во многих продуктах есть исталляторы, которые сами создадут нужные файлы и пропишут что нужно;
- можно посмотреть в интернете;
Так вот, насчёт последнего пункта, решил составить список, где у разных CMS хранятся настройки, в частности настройки подключения к базе данных. Обычно все конфигурационные директивы хранятся в одном месте.
Буду указывать название продукта и версию. Пути к файлам будут относительно корня сайта. Все настройки описывать не буду. Буду указывать настройки подключения к базе данных по шаблону типа «в чём хранятся(переменные, константы) имя переменной(константы) хранящий адрес хоста, имя базы данных, логин пользователя, пароль пользователя»
Так же там могут быть настройки кодировки подключения, префикса таблиц, но их указывать не буду. Вообще если найти файл, то там всё должно быть логично и даже прокомментировано.
И так….
WordPress 2.9
/wp-config.php
константы DB_HOST, DB_NAME, DB_USER, DB_PASSWORD
1с Битрикс 11
/bitrix/php_interface/dbconn.php
переменные $DBHost, $DBName, $DBLogin, $DBPassword
Joomla! 2.5
/configuration.php
свойства класса JConfig $host, $db, $user, $password
phpMyAdmin 3.2.3
/config.inc.php
переменные $cfg[‘Servers’][$i][‘host’], база данных выбирается в самом приложении, $cfg[‘Servers’][$i][‘user’], $cfg[‘Servers’][$i][‘password’]
NetCat 4.7
/vars.inc.php
переменные $MYSQL_HOST, $MYSQL_DB_NAME, $MYSQL_USER, $MYSQL_PASSWORD
Drupal 7.12
/sites/default/settings.php
где default — сайт, может различаться
хранится всё в переменной-массиве $databases с ключами host, database, username, password
Думаю список ещё будет пополняться.
Прошу дополнить своими знаниями этот пост в комментах! Буду очень благодарен.
lamp-dev.ru
Действия при смене пароля к БД MySQL - Раздел помощи
Смена пароля к базе данных MySQL
Сменить пароль к базе данных (БД) можно в Панели управления в разделе "Базы MySQL", нажав на иконку замка напротив имени базы данных в столбце "Операции".
Смена пароля в конфигурационном файле
Новый пароль, установленный для базы данных, необходимо также указать в конфигурационном файле сайта, где указываются общие параметры для подключения к базе:
DB_HOST: localhost DB_NAME - имя БД, к которой подключён сайт DB_USER - имя пользователя БД, совпадающее с именем БД, к которой подключён сайт DB_PASSWORD - пароль к БД, который вы задаёте самостоятельно при создании БД в Панели управления
Пути к конфигурационным файлам некоторых популярных CMS относительно папки, в которую установлено ПО:
Пароль к базе данных сайта, указывается в строке $password =>
Пароль к базе данных сайта указывается в строке public $password:
Строка с паролем обозначена комментарием MySQL database password:
Пароль к базе данных сайта указывается в строке core.password =
Пароль к базе данных сайта указывается в строке $DBPassword =
Пароль к базе данных сайта указывается в строке $database_password =
Важно!
Следует учесть, что в некоторых случаях для конфигурационных файлов может быть установлена защита от записи, т.е. перед редактированием необходимо выставить права, разрешающие правку файла. Сделать это можно следующим образом:
Пример:
На приведенном ниже скриншоте можно видеть, что для конфигурационного файла configuratiom.php назначены права только на чтение («r--r--r--» или 444). Перед редактированием этого файла необходимо указать для него права на запись («rw-r--r--» или 644).
При необходимости после внесения новой информации в файл конфигурации права на файл рекомендуется вернуть в исходное состояние, запретив запись в файл.
help.sweb.ru
Некоторые приёмы работы в Битрикс на SQL и BASH / СоХабр
Эта статья является вводной к серии статей о структуре базы данных Битрикс, где эта тема будет раскрыта достаточно подробно. Для начала же будут представлены решения некоторых небольших, но назойливых задач. Как всегда, знание SQL обязательно.
В статье рассматриваются довольно частные вопросы, которые не возникают ежедневно. Конечно, вы можете использовать эти материалы по их прямому назначению, но главная цель статьи не в этом. Я начинаю вскрывать «чёрный ящик» под названием «структура базы данных битрикс», и показывать, что эти знания могут пригодиться для повышения уровня владения как системой, так и базовыми технологиями (SQL, linux shell), что, конечно, помогает решать новые, сложные, интересные, разнообразные задачи.
Страница, с которой можно делать SQL запросы в базу, или mysql web клиент битрикс, находится в панели управления Битрикса по пути: «Настройки->Инструменты->SQL запрос».
Также, конечно, можно делать запросы из командной строки операционной системы, для чего могу предложить вам несложную операцию извлечения логина и пароля прямо из настроек Битрикса:
1. Настройка «Избранного» для всех пользователей панели управления Bitrix сразу.
Когда вводится новый сайт, разработчику не хочется объяснять каждому, кто добавляет новости или редактирует страницы, что нужно нажать, чтобы попасть в новости или каталог товаров. Лучше вывести ссылки прямо на стартовую страницу панели управления битрикс, тем более, что в битриксе «рабочий стол» в админке для этого и предназначен.Если настройки так называемого «рабочего стола» можно распространить на всех, кто зайдёт в админку Битрикса, то колонку «Избранное» пользователь заполняет только для себя. Это логично, но обычно пользователи пренебрегают такой возможностью, поэтому сделаем эту работу за них.
К тому же, не всё можно поместить на «Рабочий стол», а в «Избранное» можно добавить всё, что угодно, даже ссылку на сторонний ресурс, например, на почту или тикеты службы техподдержки другой системы.
Заполнить блок «Избранное» в админке битрикса именно для всех контент-менеджеров панель управления не позволяет: нет такой кнопочки. Поэтому, вначале добавим нужные ссылки в блок «Избранное» для себя.
Узнайте ваш ID пользователя. Если вы под администратором (admin) в панели управления, то ваш ID пользователя =1.
Очевидно, эти данные относятся к пользователю, и первый взгляд бросается на таблицы, начинающиеся с b_user_, которых в базе Битрикса с десяток. Однако, нужная нам таблица не имеет такого префикса и называется b_favorites.
Эта таблица содержит поле COMMON, которое для всех записей имеет значение 'N'. Как обнаруживается, функция показа избранного для всех пользователей есть, и поле COMMON в таблице b_favorites полностью оправдывает своё наименование.
update b_favorite set common='Y' where user_id=1; Нам даже не нужно дублировать записи администратора для всех пользователей (а как тогда было бы с вновь заводимыми администраторами сайта?.. Делать mysql триггер?.. Заводить событие?...). Теперь все пользователи админки Bitrix видят те же самые «Избранные», что и вы. Задача решена.
2. Как сменить логин и пароль пользователя битрикс через базу данных. Как сбросить пароль администратора Bitrix.
Если вы не можете зайти в панель управления Битрикс, но база доступна, вы можете либо установить свой собственный пароль для пользователя, либо сделать его таким же, как у какого-то другого пользователя, пароль которого вы знаете.Основные данные всех пользователей хранятся в таблице b_user. Вам нужно знать ID пользователя в системе Битрикс.
Установка собственного логина и пароля Bitrix средствами Mysql
Пароль хранится в базе в виде:<соль_строка>md5(<соль_строка><пароль>)
Говорят, они что-то ещё изменили, но если вы сделаете так, то оно будет работать.
update b_user set login='su',password=concat('12345678',md5('12345678stupidpassword')) where id=8;где su — новый логин пользователя 12345678 — соль stupidpassword — новый пароль пользователя id=8 — id пользователя (если admin, то =1) Пароль битрикс сброшен, задача решена. Заодно, вы можете изменить и логин.Копирование пароля от другого пользователя
На этот раз, нам нужно просто перенести хеш пароля от одного пользователя к другому. Конечно, нужно знать ID обоих пользователей в bitrix, в данном случае пользователю с ID=36 мы устанавливаем пароль от пользователя с ID=895.
update b_user b1 inner join b_user b2 on b2.id=36 set b1.password=b2.password where b1.id=895;3. Применение настройки полей в редактировании заказа в Bitrix админке для всех пользователей.
В некоей доменной зоне второго уровня, на некотором сайте, в административной панели системы управления Битрикс располагается страница редактирования заказа интернет-магазина, в заголовке таблицы товаров которой есть кнопка настройки в виде шестерёнки, и бывает эта кнопка то синяя, то серая…Нажав на эту кнопку, можно задавать поля заказа, которые будут выводиться в таблице, в том числе и пользовательские свойства заказа. Но при этом, задаётся это только для одного пользователя.
Чтобы применить эти настройки ко всем пользователям панели управления битрикса, а не объяснять каждому, «нажмите маленькую кнопочку в заголовке таблицы с товарами, видите список свойств… Выберите нужные вам...», выставим настройки через базу.
Эти настройки хранятся в таблице b_user_option, которые сопоставлены определённому пользователю посредством поля user_id. Но есть одна особенность: если user_id=0, то свойство — глобальное, и применяется для всех пользователей.
update b_user_option set user_id=0 where name='table_columns' and category='order_basket_table' and user_id=1 где user_id=1 — ID пользователя, под которым вы настраивали таблицу товаров. Если это admin, то ID=1.Задача решена: Теперь ваши настройки таблицы товаров работают у всех сразу.
4. Сортировка результатов поиска в битрикс по собственному алгоритму.
Если речь идёт о поиске по сайту, основной таблицей для модулей поиска в битриксе является b_search_content.Интересные поля таблицы b_search_content:
custom_rank — поле, по которому сортировка работает прежде всех остальных полей param1 — код инфоблока param2 — номер инфоблока module_id — ='iblock' item_id — id элемента или раздела — для поиска в инфоблоках.
Прежде всего нас интересует поле custom_rank.
Если в предыдущих случаях мы пользовались предусмотренными, но нереализованными возможностями Битрикс, то для этого поля в панели управления специальная «галочка» есть. Но выставляется она отдельно для каждого элемента, и обычно этой возможностью не пользуются.
Это поле кстати оказывается числовым, так и заполним его по своему усмотрению, тем самым задавая собственные правила сортировки результатов поиска. По умолчанию, для всех элементов его значение равно нулю.
В моём случае, при поиске товаров в каталоге интернет-магазина, реализованном на решении разработчика romza, нужно было вначале выводить те товары, у которых была установлена некая специальная галочка, которая являлась «свойством», соответствующим наличию товара в определённой торговой точке. Прилетало всё это добро с инкрементальной загрузкой из 1С, поэтому данный SQL запрос был повешен на событие окончания обмена с 1С.
update b_search_content sc inner join b_iblock_element_property elp on elp.iblock_element_id=sc.item_id and elp.iblock_property_id=<числовой_id_параметра> set sc.custom_rank=if(elp.value=<числовой_id_значения_параметра>,<произвольное_число>,0) where sc.param1='<код_инфоблока>' and sc.param2=<номер_инфоблока> В настройке инфоблока должно быть указано «Значения свойств хранятся: в общей таблице (по умолчанию)», а не в отдельной таблице, иначе запрос будет выглядеть несколько по-другому.Сейчас же, за счёт того, что запрос идёт вначале по таблице b_iblock_element_property, а не b_iblock_element, которая является основной для хранения элементов инфоблоков, мы отбираем только те элементы, у которых нужное свойство вообще есть, и если оно равно нужному значению, то поднимается custom_rank, в противном случае, он сбрасывается в ноль.
В моём случае задача решена, а для вас имеется полный простор для реализации своей собственной логики сортировки результатов поиска. А если вам не совсем знакомы эти наименования таблиц, то уже в следующей статье я раскрою их назначение более подробно.
Как быстро почистить кеш в битрикс.
«И на footer.php»: Очистка кеша в битрикс через панель управления происходит очень медленно. На самом деле, идёт всего лишь удаление файлов в определённых директориях, просто это делается медленными средствами. Сделаем специальный файл для очистки кеша в битрикс в командной строке linux.cd /home/bitrix/ cat <<'EOF' > clearcache.sh #!/bin/bash cd $( dirname $0 ) basedir=$(pwd)/www/bitrix/ for d in cache managed_cache; do find $basedir$d -mindepth 1 -delete done EOF chmod 0775 clearcache.sh Теперь вы можете запустить ./clearcache.sh, и кеш битрикса очистится практически мгновенно.Скрипт этот должен лежать на одну директорию выше, чем DOCUMENT_ROOT вашего сайта. Хотя, вы можете изменить как место его нахождения, так и код, суть в том, что мы должны удалить все файлы из директорий:
cache managed_cache stack_cache — раньше была ещё эта директория, но в последних версиях я её не наблюдаю, поэтому сейчас без неё.
На самом деле, если удалить и сами директории, ничего не случится, они пересоздадутся. Но более правильно их оставлять.
В виртаульной машине Битрикс DOCUMENT_ROOT равен /home/bitrix/www/, если же у вас сайт установлен в другую директорию, скорректируйте скрипт согласно вашим путям.
sohabr.net
Хабрахабр
Я продолжаю писать о Битриксе в контексте обменов, Mysql и командной строки Linux.Эта статья является вводной к серии статей о структуре базы данных Битрикс, где эта тема будет раскрыта достаточно подробно. Для начала же будут представлены решения некоторых небольших, но назойливых задач. Как всегда, знание SQL обязательно.
В статье рассматриваются довольно частные вопросы, которые не возникают ежедневно. Конечно, вы можете использовать эти материалы по их прямому назначению, но главная цель статьи не в этом. Я начинаю вскрывать «чёрный ящик» под названием «структура базы данных битрикс», и показывать, что эти знания могут пригодиться для повышения уровня владения как системой, так и базовыми технологиями (SQL, linux shell), что, конечно, помогает решать новые, сложные, интересные, разнообразные задачи.
Страница, с которой можно делать SQL запросы в базу, или mysql web клиент битрикс, находится в панели управления Битрикса по пути: «Настройки->Инструменты->SQL запрос».
Также, конечно, можно делать запросы из командной строки операционной системы, для чего могу предложить вам несложную операцию извлечения логина и пароля прямо из настроек Битрикса:
log=$(grep -i "login" /home/bitrix/www/bitrix/php_interface/dbconn.php | cut -f2 -d'"') pas=$(grep -i "pass" /home/bitrix/www/bitrix/php_interface/dbconn.php | cut -f2 -d'"') mysql -u$log -p$pas $log — таким образом можно получить логин и пароль к базе данных Mysql Bitrix из командной строки linux на bash. Пути, конечно же, заменяйте на ваши собственные. В варианте, предоставляемом виртаульной машиной Битрикс, DOCUMENT_ROOT выглядит как /home/bitrix/www/.1. Настройка «Избранного» для всех пользователей панели управления Bitrix сразу.
Когда вводится новый сайт, разработчику не хочется объяснять каждому, кто добавляет новости или редактирует страницы, что нужно нажать, чтобы попасть в новости или каталог товаров. Лучше вывести ссылки прямо на стартовую страницу панели управления битрикс, тем более, что в битриксе «рабочий стол» в админке для этого и предназначен.Если настройки так называемого «рабочего стола» можно распространить на всех, кто зайдёт в админку Битрикса, то колонку «Избранное» пользователь заполняет только для себя. Это логично, но обычно пользователи пренебрегают такой возможностью, поэтому сделаем эту работу за них.
К тому же, не всё можно поместить на «Рабочий стол», а в «Избранное» можно добавить всё, что угодно, даже ссылку на сторонний ресурс, например, на почту или тикеты службы техподдержки другой системы.
Заполнить блок «Избранное» в админке битрикса именно для всех контент-менеджеров панель управления не позволяет: нет такой кнопочки. Поэтому, вначале добавим нужные ссылки в блок «Избранное» для себя.
Узнайте ваш ID пользователя. Если вы под администратором (admin) в панели управления, то ваш ID пользователя =1.
Очевидно, эти данные относятся к пользователю, и первый взгляд бросается на таблицы, начинающиеся с b_user_, которых в базе Битрикса с десяток. Однако, нужная нам таблица не имеет такого префикса и называется b_favorites.
Эта таблица содержит поле COMMON, которое для всех записей имеет значение 'N'. Как обнаруживается, функция показа избранного для всех пользователей есть, и поле COMMON в таблице b_favorites полностью оправдывает своё наименование.
update b_favorite set common='Y' where user_id=1; Нам даже не нужно дублировать записи администратора для всех пользователей (а как тогда было бы с вновь заводимыми администраторами сайта?.. Делать mysql триггер?.. Заводить событие?...). Теперь все пользователи админки Bitrix видят те же самые «Избранные», что и вы. Задача решена.2. Как сменить логин и пароль пользователя битрикс через базу данных. Как сбросить пароль администратора Bitrix.
Если вы не можете зайти в панель управления Битрикс, но база доступна, вы можете либо установить свой собственный пароль для пользователя, либо сделать его таким же, как у какого-то другого пользователя, пароль которого вы знаете.Основные данные всех пользователей хранятся в таблице b_user. Вам нужно знать ID пользователя в системе Битрикс.
Установка собственного логина и пароля Bitrix средствами Mysql
Пароль хранится в базе в виде:<соль_строка>md5(<соль_строка><пароль>)
Говорят, они что-то ещё изменили, но если вы сделаете так, то оно будет работать.
update b_user set login='su',password=concat('12345678',md5('12345678stupidpassword')) where id=8;где su — новый логин пользователя 12345678 — соль stupidpassword — новый пароль пользователя id=8 — id пользователя (если admin, то =1) Пароль битрикс сброшен, задача решена. Заодно, вы можете изменить и логин.Копирование пароля от другого пользователя
И второй, очень простой, способ сброса пароля в битрикс.На этот раз, нам нужно просто перенести хеш пароля от одного пользователя к другому. Конечно, нужно знать ID обоих пользователей в bitrix, в данном случае пользователю с ID=36 мы устанавливаем пароль от пользователя с ID=895.
update b_user b1 inner join b_user b2 on b2.id=36 set b1.password=b2.password where b1.id=895;3. Применение настройки полей в редактировании заказа в Bitrix админке для всех пользователей.
В некоей доменной зоне второго уровня, на некотором сайте, в административной панели системы управления Битрикс располагается страница редактирования заказа интернет-магазина, в заголовке таблицы товаров которой есть кнопка настройки в виде шестерёнки, и бывает эта кнопка то синяя, то серая…Нажав на эту кнопку, можно задавать поля заказа, которые будут выводиться в таблице, в том числе и пользовательские свойства заказа. Но при этом, задаётся это только для одного пользователя.
Чтобы применить эти настройки ко всем пользователям панели управления битрикса, а не объяснять каждому, «нажмите маленькую кнопочку в заголовке таблицы с товарами, видите список свойств… Выберите нужные вам...», выставим настройки через базу.
Эти настройки хранятся в таблице b_user_option, которые сопоставлены определённому пользователю посредством поля user_id. Но есть одна особенность: если user_id=0, то свойство — глобальное, и применяется для всех пользователей.
update b_user_option set user_id=0 where name='table_columns' and category='order_basket_table' and user_id=1 где user_id=1 — ID пользователя, под которым вы настраивали таблицу товаров. Если это admin, то ID=1.Задача решена: Теперь ваши настройки таблицы товаров работают у всех сразу.
4. Сортировка результатов поиска в битрикс по собственному алгоритму.
Если речь идёт о поиске по сайту, основной таблицей для модулей поиска в битриксе является b_search_content.Интересные поля таблицы b_search_content:
custom_rank — поле, по которому сортировка работает прежде всех остальных полей param1 — код инфоблока param2 — номер инфоблока module_id — ='iblock' item_id — id элемента или раздела — для поиска в инфоблоках.
Прежде всего нас интересует поле custom_rank.
Если в предыдущих случаях мы пользовались предусмотренными, но нереализованными возможностями Битрикс, то для этого поля в панели управления специальная «галочка» есть. Но выставляется она отдельно для каждого элемента, и обычно этой возможностью не пользуются.
Это поле кстати оказывается числовым, так и заполним его по своему усмотрению, тем самым задавая собственные правила сортировки результатов поиска. По умолчанию, для всех элементов его значение равно нулю.
В моём случае, при поиске товаров в каталоге интернет-магазина, реализованном на решении разработчика romza, нужно было вначале выводить те товары, у которых была установлена некая специальная галочка, которая являлась «свойством», соответствующим наличию товара в определённой торговой точке. Прилетало всё это добро с инкрементальной загрузкой из 1С, поэтому данный SQL запрос был повешен на событие окончания обмена с 1С.
update b_search_content sc inner join b_iblock_element_property elp on elp.iblock_element_id=sc.item_id and elp.iblock_property_id=<числовой_id_параметра> set sc.custom_rank=if(elp.value=<числовой_id_значения_параметра>,<произвольное_число>,0) where sc.param1='<код_инфоблока>' and sc.param2=<номер_инфоблока> В настройке инфоблока должно быть указано «Значения свойств хранятся: в общей таблице (по умолчанию)», а не в отдельной таблице, иначе запрос будет выглядеть несколько по-другому.Сейчас же, за счёт того, что запрос идёт вначале по таблице b_iblock_element_property, а не b_iblock_element, которая является основной для хранения элементов инфоблоков, мы отбираем только те элементы, у которых нужное свойство вообще есть, и если оно равно нужному значению, то поднимается custom_rank, в противном случае, он сбрасывается в ноль.
В моём случае задача решена, а для вас имеется полный простор для реализации своей собственной логики сортировки результатов поиска. А если вам не совсем знакомы эти наименования таблиц, то уже в следующей статье я раскрою их назначение более подробно.
Как быстро почистить кеш в битрикс.
«И на footer.php»: Очистка кеша в битрикс через панель управления происходит очень медленно. На самом деле, идёт всего лишь удаление файлов в определённых директориях, просто это делается медленными средствами. Сделаем специальный файл для очистки кеша в битрикс в командной строке linux.cd /home/bitrix/ cat <<'EOF' > clearcache.sh #!/bin/bash cd $( dirname $0 ) basedir=$(pwd)/www/bitrix/ for d in cache managed_cache; do find $basedir$d -mindepth 1 -delete done EOF chmod 0775 clearcache.sh Теперь вы можете запустить ./clearcache.sh, и кеш битрикса очистится практически мгновенно.Скрипт этот должен лежать на одну директорию выше, чем DOCUMENT_ROOT вашего сайта. Хотя, вы можете изменить как место его нахождения, так и код, суть в том, что мы должны удалить все файлы из директорий:
cache managed_cache stack_cache — раньше была ещё эта директория, но в последних версиях я её не наблюдаю, поэтому сейчас без неё.
На самом деле, если удалить и сами директории, ничего не случится, они пересоздадутся. Но более правильно их оставлять.
В виртаульной машине Битрикс DOCUMENT_ROOT равен /home/bitrix/www/, если же у вас сайт установлен в другую директорию, скорректируйте скрипт согласно вашим путям.
habrahabr.net