Punta de Choros

27 декември 2009

На 2009г й оставаха 120ч съществуване. От календара падна поредния лист с дата 27 декември и към 10.30ч сутринта ме събуди звън от телефона.

Инсталация на Microsoft шрифтове в Ubuntu 16.04

14 януари 2017

нсталация на Microsoft шрифтове в Ubuntu се поражда от идеята браузърите в различните системи, да показват еднакво текстовото съдържанието на интернет страниците.

Ubuntu 16.04 инсталация на USB disk on Key

19 ноември 2016

Арсеналът ми от мобилни компютри съдържа Fujitsu Lifebook AH530. Това е бюджетна машина от 2011г на Intel Core i5-480M процесор и 4GB DDR3 RAM памет.

gparted

Paragon ExtFS for Windows

30 юли 2016

ExtFS for Windows е утилита на Paragon Software разработена през 2013г. Тя представлява решение, предоставящо пълен достъп на четене и на запис до раздели ...

msvcr100.dll is missing Windows 10

04 октомври 2016

Майк Патерсън от Plixer, компания по компютърната сигурност, публикува доклад , че Windows 10 изпраща данни в криптиран вид от вашата машина на всеки пет минути. Той е направил максимума, за да спре изтичането, но системата продължавала да изпраща информация.


phpMyAdmin е уеб базирано приложение написано на език PHP. phpMyAdmin е своеобразен уеб-интерфейс за администриране на база данни в MySQL. phpMyAdmin позволява по пътя на браузър, да осъществявате администриране на сървър MySQL, да пускате команди на език SQL и преглеждате съдържанието на таблиците и базите данни.

Тези встъпителни думи към поредната ни среща написах тук преди време.



Към днешен ден версията порасна на 3.3.9.2deb1~lucid1~ppa1 под Ubuntu 10.04. Малък недъг ме дразни оттогава. При отсъствие активност в течение на 24 мин, phpMyAdmin справедливо ви изхвърля от сесията и ви подканва към поредно въвеждане на паролата за вход с надпис:

No activity within 1440 seconds


Решение:
  1. Достъп до /etc/phpmyadmin/config.inc.php и чрез текстови редактор добавяме нов ред: $cfg['LoginCookieValidity'] = 3600;// 1 час

    За интервал по ваше желание задайте нужното време, например, 36000 - 10 часа.
    phpmyadmin/config.inc.php
  2. Редактираме /etc/php5/apache2/php.ini и задаваме значение
    на параметър session.gc_maxlifetime
    session.gc_maxlifetime = 3600
    php5/apache2/php.ini
  3. Презареждаме Apache, за да влязат измененията в сила
    /etc/init.d/apache2 restart

MySQL Default engine InnoDB


В царството на слепите човек с едно око е царят. Ако имате две очи сигурно сте забелязали, че мотор по подразбиране (default engine) в MySQL е MyISAM.
MyISAM




Промяна от MyISAM на InnoDB предлага следното решение:
  1. sudo /etc/init.d/mysql stop
  2. sudo gedit /etc/mysql/my.cnf
    В появилия се редактор премахваме коментара пред default-storage-engine=innodb
    Default engine InnoDB
  3. sudo /etc/init.d/mysql start
  4. sudo /etc/init.d/apache2 restart

ft_min_word_len


По подразбиране думи, съставени по-малко от четири символа се игнорират. Кратките думи не се индексират и това е с цел увеличение на производителността на MySQL. Подобно положение поражда проблеми. Все пак трибуквени съкращения са практика за съставните на технически текстове. Този нюанс може да се изглади като се промени значение на променлива ft_min_word_len.

В MySQL ft_min_word_len по подразбиране е равна на '4' и не е описана в my.cnf. Моментното и значение може да се провери в mysql-монитора, чрез следната заявка:

mysql> SHOW VARIABLES LIKE '%ft_min_word_len%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| ft_min_word_len | 4     |
+-----------------+-------+
За промяна на текущата стойност добавете ft_min_word_len = 3 в файл my.cnf под секция [mysqld].
ft_min_word_len
  1. Рестартирайте сървъра, за да влязат промените в сила:
    # /etc/init.d/mysql restart
    mysql-monitor
  2. Престроите вашите индекси REPAIR TABLE your table_name QUICK;
Конкретно.

DEFAULT CHARACTER SET


Кодировката по подразбиране в MySQL е latin1. Този избор поражда чупене на кирилизирани текстове, което е много неприятно. Нека погледнем на практика съответните променливи за целта.

mysql> SHOW VARIABLES LIKE '%character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
mysql> SHOW VARIABLES LIKE '%collation%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
Моите предпочитания са в полза на UTF-8. Това налага създаване на поредна база данни в phpMyAdmin да започва по следния начин.
create new DB in phpMyAdmin

В PHP подобни колизии с кодировката се решават с допълнителна заявка, наричани от някои като хак на енкодинга:

//съединение с MySQL
$id=mysql_connect(DB_HOST, DB_USER, DB_PASS) or die('No server connected');

//избор база данни
mysql_select_db(DB_NAME, $id) or die('No DB selected');

//хак на енкодинга
mysql_query('SET CHARACTER SET utf8', $id); 
// mysql_query('SET NAMES utf8', $id);
В mysql-монитора заявката следва да бъде подобна:
mysql> CREATE DATABASE someNewDB DEFAULT CHARACTER SET utf8;

Заявката създава в каталог /var/lib/mysql/someNewDB файл db.opt с следното съдържание:
default-character-set=utf8
default-collation=utf8_general_ci


Същото по-горе на практика:
root@prodesktop:/var/lib/mysql/someNewDB# ls -l
total 4
-rw-rw---- 1 mysql mysql 61 2012-06-09 15:31 db.opt
root@prodesktop:/var/lib/mysql/someNewDB# cat db.opt
default-character-set=utf8
default-collation=utf8_general_ci

Подобни ритуали са леко отегчителни, затова може твърдо да се зададе UTF8 в файл my.cnf. Добавете следните записи в съответните секции:
[client]
default-character-set=utf8

[mysqld]
default-character-set=utf8
default-collation=utf8_general_ci
character-set-server=utf8
init-connect='SET NAMES utf8;'
# init_connect='SET collation_connection = utf8_general_ci'
collation-server=utf8_general_ci
# skip-character-set-client-handshake

[mysql]
default-character-set=utf8
Рестартирайте сървъра и проверете изменения с показаните горе заявки.
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+





до нови срещи   ^.^
01.06.2012 profruit 


0 Response to "MySQL съвети и трикове"

Публикуване на коментар

Този блог е реинкарнация на първите ми опити за споделяне в нета. На времето започнах с къси разкази на преживяното. После се обезсмисли и превърнах блога си в системно радио. Пиша единствено неща, които карат душата ми да живее: Ubuntu, WEB, Photoshop, Фотография, Споделено и т.н. Това е моето системно радио, разбирате ли? Моята вълна и вие сте на нея сега.

Архив на блога