Author Archives: admin

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

WP – schimbam domeniul sau directorul.

Exista cazuri cand tre sa mutam un wordperss platforma de pe un domeniu pe altl, sau pe acelas domeniu in alt director, ca sa mearga pe nou tre sa updatam baza de date:

UPDATE wp_options SET option_value = REPLACE(option_value,'www.olddomain.com','www.newdomain.com') WHERE option_name = "siteurl" OR option_name = "home";
UPDATE wp_posts SET post_content = REPLACE(post_content,'www.olddomain.com','www.newdomain.com');

Export fisier in UTF8 format

Atunci cand avem treaba cu diacritice, sau caractere speciale ne intimpinam cu tot felul de probleme la codificare, una dintre care este export a datelor in fisier, ca sa se exporte corect si editorul in care se va deschide fisierulk sa stie ca e format utf8 facem asa:

 

header ('Content-Type: application/download');
            header('Expires: 0');
            header('Cache-Control: private');
            header('Pragma: cache');
            header ('Content-Transfer-Encoding: binary');
            header('Content-Encoding: UTF-8');
            header('Content-type: text/csv; charset=UTF-8');
            //header("Content-type: application/vnd.ms-excel");
            header("Content-disposition: csv; filename=" . date("Y-m-d") .".csv; size=".strlen($sExportContent));
            echo "\xEF\xBB\xBF"; \\Ii zice editorului ca e fisier in format UTF-8
            print $sExportContent;
            exit;

UTF-8 pe site

Ca sa nu avem probleme cu diacritice, chirilica, si alte caractere nestandarte facem urmatoarele:

In  HEAD bagam:

<meta http-equiv="content-type" content="text/html; charset=utf-8" />

In cod php bagam la inceput:

 

mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
mb_http_input('UTF-8');
mb_language('uni');
mb_regex_encoding('UTF-8');
//ob_start('mb_output_handler'); - aici tre de vazut daca e bine sau nu cu asta

La creare baza de date facem asa:

CREATE DATABASE mydatabase CHARACTER SET utf8 COLLATE utf8_Unicode_ci;

Iar la conectare la baza de date setam urmatoarele:

SET NAMES utf8;
SET CHARACTER SET utf8;

Probleme n-ar trebui sa mai apara…

P.S. : Daca pina acum campurile erau latin si contineau caractere speciale, sa nu le perdem pentru fiecare camp in parte tre sa exacutam urmatorul query:

UPDATE `tabel` SET <field> = convert(binary convert(<field> using latin1) using utf8);

 

Comenzi utile Linux

Cautam un IP in loguri pe mai multe domenii:

grep -r "82.145.209.89" /var/www/vhosts/

sau mai bine asa:

grep -r "176.31.18.235" /var/www/vhosts/*/statistics/logs/*
 

Ca sa monitorizam ce face apache-ul:

strace -f -o /home/<dir pentru log>/apache-trace.txt  /etc/init.d/httpd start

Stergem toate logurile la toate subdomeniile:

rm -f /var/www/vhosts/*/statistics/logs/*