Category Archives: MySQL

Latin to UTF

In primul rand convertim DB:

ALTER DATABASE <DB_NAME> CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Dupa asta convertim fiecare tabel in parte:

ALTER TABLE TBL1 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER TABLE TBL2 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Daca este nevoie convertim campurile din tabel:

UPDATE <TABELA> SET
FLD1=convert(cast(convert(FLD1 using  latin1) as binary) using utf8),
FLD2=convert(cast(convert(FLD2 using  latin1) as binary) using utf8)
WHERE 1

Install Mysql 8.0 ON Centos 6

wget https://dev.mysql.com/get/mysql80-community-release-el6-5.noarch.rpm

yum install mysql80-community-release-el6-5.noarch.rpm

yum-config-manager –disable mysql57-community

yum-config-manager –enable mysql80-community

sudo yum module disable mysql

sudo yum install mysql-community-server

systemctl start mysqld

systemctl status mysqld

sudo grep ‘temporary password’ /var/log/mysqld.log

mysql -uroot -p

ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘MyNewPass4!’;

Sursa: https://dev.mysql.com/doc/mysql-installation-excerpt/8.0/en/linux-installation-yum-repo.html

Optimizare Mysql

Cum ziceau aici: http://hosting101.ru/articles/mysql-performance-1.html

am pus si yo setarile in /etc/my.cnf:

[mysqld]
default-storage-engine=MyISAM
innodb=OFF
bind-address = 127.0.0.1

max_connect_errors = 1K
max_join_size=200M
max_allowed_packet=16M

key_buffer_size=128M
query_cache_size = 256M
max_heap_table_size=256M
tmp_table_size=256M

max_connections = 160
thread_cache_size = 160

read_buffer_size = 128K
read_rnd_buffer_size = 256K
join_buffer_size = 256K
sort_buffer_size = 128K

myisam_sort_buffer_size = 512M
table_open_cache = 1K

interactive_timeout = 60
wait_timeout = 60
connect_timeout =20

character-set-server=utf8
collation-server=utf8_general_ci

log_slow_queries = 1
slow_query_log_file = /var/log/mysql-bin.log
long_query_time = 4
log-queries-not-using-indexes = 1

 

dupa asta am dat:

mysqlcheck -c  –all-databases -uadmin -p`cat /etc/psa/.psa.shadow`

si respectiv restart la mysal:

service mysqld restart

Omu o dat niste explicatii:

Подробности:
1) Ставим MyISAM по умолчанию и отключаем ненужные нам вещи:
default-storage-engine=MyISAM
innodb=OFF
skip-symbolic-links
skip-networking
skip-name-resolve
skip-federated

2) Привязываем базу для использования только на нашем сервере:
bind-address = 127.0.0.1

3) Выставляем необходимые максимальные ограничения:
max_connect_errors = 1K
max_join_size=200M
max_allowed_packet=16M

4) Устанавливаем общий буфер, кэш для запросов и max размер для временных таблиц:
key_buffer_size=128M
query_cache_size = 256M
max_heap_table_size=256M
tmp_table_size=256M

5) Максимальное число соединений к базе и ожидающих их процессов:
max_connections = 160
thread_cache_size = 160

6) Буферы на каждый процесс (большие значения типа 1Mb и выше для нас это явно перебор).
read_buffer_size = 128K
read_rnd_buffer_size = 256K
join_buffer_size = 256K
sort_buffer_size = 128K

7) Служебный сортировочный буфер (память постоянно не занимает) и кэш открытых таблиц.
myisam_sort_buffer_size = 512M
table_open_cache = 1K

8) Необходимые таймауты, чтобы отсекать долгие ожидания.
interactive_timeout = 60
wait_timeout = 60
connect_timeout =20

9) Установка кодировки UTF8:
character-set-server=utf8
collation-server=utf8_general_ci

10) По желанию можно добавить логи медленных запросов или неиспользуемых индексов (создайте доступным на запись файл для лога).
log_slow_queries = 1
slow_query_log_file = /var/log/mysql-bin.log
long_query_time = 4
log-queries-not-using-indexes