27
Июль
2023
Если честно даже не понимаю, как я к своим годам так и не заюзал такой супер-удобный инструмент как SSH туннели и проброс портов…
Началось с того, что мне понадобился доступ к удалённой БД, порт снаружи закрыт.
Попробовал настроить SSH туннелирование в настройках БД в PHPStorm …
При тестировании соединения в ssh всё ОК, тест проходит успешно а непосредсвенно при тестировании соединения к БД ругается на то, что не может создать ssh туннель
SSH tunnel creation failed: Connection refused.
Победить так и не смог — хз чего ему не нравится 🙁
Собственно, сразу решение — запускаю с ком.строки (Ubuntu)
ssh -L 3307:localhost:3306 root@SERVER_IP -p SERVER_SSH_PORT -N
и вуаля — цепляемся любым софтом по работе с БД локально на 3307 порт
Так же можно и в обратном порядке — т.е. всё с удалённого порта прокидывать себе на локальный, но это ещё не юзал …
Источник SSH туннели и проброс портов
рубрики: MYSQL, NIX, Ubuntu, Администрирование, Полезности |
21
Февраль
2023
Сегодня пришло сообщение о недоступности сайта клиента.
Начал разбираться — всё свободное место забито /var/lib/mysql, а точнее файлами mysql-bin.001 … и т.д.
Оказалось включена репликация, причём о slave сервере никто не в курсе, и судя по логам синхронизации не было уже несколько лет, а лимит хранения не был настроен.
Решение — отключаем синхронизацию
Удаляю файл /etc/mysql/conf/bx_replica.cnf (у вас возможно просто удалить строки настройки из основного конф.файла) — содержание bx_replica.cnf
Далее в mysql (по идее достаточно только RESET MASTER, но я все выполнил на всякий пожарный)
mysql> STOP SLAVE;
mysql> RESET SLAVE ALL;
mysql> PURGE MASTER LOGS BEFORE ‘2023-02-21 00:00:00’; (тут текущую дату поставьте)
mysql> RESET MASTER;
после чего рестартим сервис
# service mysqld restart
проверяем — файлов не должно остаться
если остались — вроде как можно убить вручную и рестартануть сервис, но у меня убились командами мускула
так же для пущей уверенности можно произвести какую нить операцию в БД в админке сайта и убедиться что bin файл не появился
рубрики: MYSQL |
2
Ноябрь
2021
MYSQL Убираем дубли из таблицы если есть поле ID
|
CREATE TEMPORARY TABLE `t_temp` as ( SELECT min(id) as id FROM `table` GROUP BY name, surname ); DELETE from `table` WHERE `table`.id not in ( SELECT id FROM t_temp ); |
MYSQL Убираем дубли из таблицы если нет поля ID
на примере таблицы b_user_access_check
В текущей версии 1С Битрикс айдишника нет и пишут они туда без какого либо контроля на дубли, в результате чего у одного из клиентов 80 млн. записей и 8 гигабайт «вес» файла таблицы, всё это «добро» от включенной галочки «Сохранять историю изменения полей профиля пользователя:» и нулём в «Сколько дней хранить историю».
Собственно, штатных методов почистить не нашел и саппорт тоже ничего не подсказал, поэтому убираем дубли напрямую запросом:
|
CREATE TEMPORARY TABLE `t_temp` as ( SELECT DISTINCT `USER_ID`, `PROVIDER_ID` FROM `b_user_access_check` GROUP BY `USER_ID`, `PROVIDER_ID` ); TRUNCATE TABLE `b_user_access_check`; INSERT INTO `b_user_access_check` (`USER_ID`, `PROVIDER_ID`) SELECT `USER_ID`, `PROVIDER_ID` FROM `t_temp`; |
рубрики: Bitrix, MYSQL |