Dbeawer autocommit off. Manual commit by default
Рубрика: Sql
[AWS][Microsoft SQL] file to retrieve data for this request
Проблема: Пытаюсь перенести базу Microsoft SQL Server на инстанс AWS-RDS. При restore получаю ошибку "file to retrieve data for this request, Permission denied" Continue reading "[AWS][Microsoft SQL] file to retrieve data for this request"
[MySQL] Конвертация таблицы из Win-1251 в UTF-8
Конвертирует данные в таблице и меняет саму кодировку таблицы
1 |
ALTER TABLE `db_name`.`db_table` CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; |
[JASPER] DB2 execute procedure
выполнение процедуры в jasper для db2 call procedurename(?)
запрос:
{call MON.P_STATISTIC($P{Parameter1})}
[JASPER] Создание отчета
Jasper Report - довольно простой способ создания отчетов для рассылок.
[DB2] linux odbc настройка подключения
yum install unixODBC.x86_64
cd /etc/
[root@host etc]# odbcinst -j
unixODBC 2.3.1
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLLEN Size........: 8
SQLSETPOSIROW Size.: 8
sudo mkdir -p /opt/IBM/db2/db2clnt1 # Создаем каталог для драйвера
sudo useradd db2clnt1 # создаем пользователя - владельца дравера
sudo chown db2clnt1:db2clnt1 /opt/IBM/db2/db2clnt1 # выдаем права
Качаем нужную нам версию db2_odbc
v10.5fp8_linuxx64_odbc_cli.tar.gz
Выкладываем ее в папку /tmp
sudo -u db2clnt1 -i
cp /tmp/v10.5fp8_linuxx64_odbc_cli.tar.gz /opt/IBM/db2/db2clnt1/
cd /opt/IBM/db2/db2clnt1
tar -zxvf v10.5fp8_linuxx64_odbc_cli.tar.gz
rm v10.5fp8_linuxx64_odbc_cli.tar.gz
sudo vim /etc/odbcinst.ini
[DB2]
Description=ODBC for IBM DB2 10.5-FP8
Driver=/opt/IBM/db2/db2clnt1/odbc_cli/clidriver/lib/libdb2.so
Driver64=/opt/IBM/db2/db2clnt1/odbc_cli/clidriver/lib/libdb2o.so
FileUsage=1
DontDLClose=1
sudo vim /etc/odbc.ini
[DATABASE]
Driver=DB2
sudo -u db2clnt1 vim /opt/IBM/db2/db2clnt1/odbc_cli/clidriver/cfg/db2cli.ini
[DATABASE]
Database=DATABASE
Protocol=TCPIP
Hostname=hostname
ServiceName=50000
uid=User_Name
pwd=XXXXXXXXXXXX
# SCHEMALIST = " 'ZABBIX'"
DeferredPrepare = 1
ConnectTimeout = 25
ReceiveTimeout = 30
LOCKTIMEOUT = 20
AppendForFetchOnly = 1
AutoCommit = 1
ConnectType = 1
CursorHold = 0
TxnIsolation = 1
sudo chmod 640 /opt/IBM/db2/db2clnt1/odbc_cli/clidriver/cfg/db2cli.ini
sudo usermod -a -G db2clnt1 zabbix #Добавляем пользователя zabbix в группу db2clnt1 что бы он мог читать конфиг
isql DATABASE_name
+---------------------------------------+
| Connected! |
| |
| sql-statement |
| help [tablename] |
| quit |
| |
+---------------------------------------+
psql
vim ~/.pgpass
1 |
сервер:порт:база_данных:имя_пользователя:пароль |
chmod 0600 ~/.pgpass
psql -X -h сервер -d база_данных -U имя_пользователя -c 'SELECT * FROM table;'
psql -X -A -t -h сервер -d база_данных -U имя_пользователя -c 'SELECT * FROM table;'
https://postgrespro.ru/docs/postgresql/9.6/libpq-pgpass
https://postgrespro.ru/docs/postgresql/9.6/app-psql.html
MySQL. Match() отменить ограничение на 4 символа
Добавьте строку setvariable в группу [mysqld] файла /etc/my.cnf (или другого файла, в котором вы храните настройки сервера):
[mysqld]
ft_min_word_len=2
Рестарт сервера MySQL. Пересоздим индекс FULLTEXT:
mysql> ALTER TABLE wtable DROP INDEX wkey;
mysql> ALTER TABLE wtable ADD FULLTEXT (wkey);
MySQL ускоряем LIKE() при помощи MATCH()
При большом количестве записей LIKE (Простой пример%) работает оочень долго. Как вариант можно сначала сделать запрос MATCH(), а потом уже из него лайк.
Чтобы матч заработал, создаем индекс FULLTEXT. Его лучше создавать после занесения данных, тк при его наличии данные добавляются медленнее.
mysql> ALTER TABLE wtable ADD FULLTEXT (wkey);
mysql> SELECT wkey FROM (SELECT * FROM wtable WHERE MATCH (wkey) AGAINST ('"Простой пример"' IN BOOLEAN MODE) ) as t2 WHERE wkey LIKE 'Простой пример %' ;
Учтите, если слово имеет меньше 4х символов MATCH() верент пустой результат при настройках по умолчанию. Как исправить.