Рубрика: mysql

Удаление осиротевших записей бд

DELETE FROM table2 WHERE parent_id NOT IN (SELECT id FROM table2);

Замена подстроки в MySQL

Оказывается есть такая возможность

Кодировка баз данных MySQL

Кодировка utf8 является универсальной и поддерживает все существующие символы, и по сути своей становится стандартом дефакто. Поэтому логично и правильно переводить все сайты на эту кодировку.

Делаем, чтобы все конекты к MySQL были по умолчанию в кодировке utf8.

В /etc/my.cnf пишем:

[mysqld]
init-connect=”SET NAMES utf8″
collation-server=utf8_unicode_ci
default-character-set=utf8

[client]
default-character-set=utf8

Если необходимо чтобы сайт отображался всё-таки в кодировке cp1251, то в скриптах после подключения к бд отсылаем запрос ‘SET NAMES cp1251’

Для PHP это будет выглядеть примерно так:

$db_id = mysql_connect ($server$username$password);

mysql_query(‘SET NAMES cp1251’, $db_id);

Конвертация дампа базы из одной кодировки в другую

Столкнулся с проблемой, когда сам дамп базы изначально в кодировке UTF-8, а нужно залить базу в кодировке cp1251
Тогда можно просто переконвертировать дамп из utf-8 в cp1251
Делается это командой
iconv -f utf-8 -t cp1251 dump_utf8.sql > dump_cp1251.sql