Видео смотреть бесплатно

Смотреть анал видео

Официальный сайт rostobrnadzor 24/7/365

Смотреть видео бесплатно

WeLinux.ru

20.04.09 14:41pluton

Tips & tricksMySQL + UTF8

Всем привет!
В этом посте хочу описать, как установить кодировку UTF8 в MySQL.

После установки кодировка была latin1. Чтобы посмотреть это, запускаем клиент:
1
2
3
4
5
6
$ mysql
mysql> \s
...
Server characterset:    latin1
...
 

Естественно, нам это не подходит.
После поисков в интернете и мане оказалось, что нужно подправить /etc/mysql/my.conf так:
1. в секцию [mysqld] дописать:
1
2
3
4
5
6
7

default-character-set=utf8
character-set-server=utf8
character-set-client=utf8
init-connect='SET NAMES utf8'
skip-character-set-client-handshake
 

2. в секции [mysqldump] и [mysql] дописать:
default-character-set=utf8


Перезагружаем сервер:
1
2
3
4
$ sudo /etc/init.d/mysql restart
 * Stopping MySQL database server mysqld                        [ OK ]
 * Starting MySQL database server mysqld                        [ OK ]
 * Checking for corrupt, not cleanly closed and upgrade needing tables.


Проверим, применились ли настройки:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

$ mysql
mysql> \s
...
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
...

mysql> SHOW VARIABLES LIKE 'char%';
| 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/ |
 


По выводу видно, что переменные установлены правильно. Для проверки создадим БД и таблицу, запишем и выведем данные:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

mysql> CREATE DATABASE test;
mysql> SHOW CREATE DATABASE test;
| test     | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ |
mysql> USE test;
Database changed
mysql> CREATE TABLE test(title VARCHAR(1000));
mysql> SHOW CREATE TABLE test;
| test  | CREATE TABLE `test` (
  `title` varchar(1000) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |
mysql> INSERT INTO test VALUES('Русско-японская война (яп. 日露戦争 Нити-Ро сэнсо:, кит. трад. 日俄戰爭, упрощ. 日俄战争, пиньинь Rìézhànzhēng, палл. Жиэчжаньчжэн; 8 февраля 1904 — 27 июля 1905) — война между Россией и Японией за контроль над Маньчжурией и Кореей.');
Query OK, 1 row affected (0.00 sec)
mysql> SELECT * FROM test;
Русско-японская война (яп. 日露戦争 Нити-Ро сэнсо:, кит. трад. 日俄戰爭, упрощ. 日俄战争, пиньинь Rìézhànzhēng, палл. Жиэчжаньчжэн; 8 февраля 190427 июля 1905) — война между Россией и Японией за контроль над Маньчжурией и Кореей.
 

Ура. Вывод работает, и везде стоит кодировка utf8. Ну, и напоследок проверим связь с php:
1
2
3
4
5
6
7
8
9
10
11
12
13
14

<?php
    header('Content-Type: text/html; Charset=utf-8');
    $conn = mysql_connect('localhost', 'j', '') or die('can\'t connect to db');
//     mysql_query('
SET NAMES utf8;');
    mysql_select_db('
test', $conn) or die('can\'t select db');
    $res = mysql_query('SELECT * FROM test;');
    if (!$res)
        die('invalid query: ' . mysql_error());
    $row = mysql_fetch_array($res, MYSQL_NUM);
    print $row[0];
    mysql_close($conn) or die('can\'t close connection');
?>

 

И тут тоже работает. Строку mysql_query('SET NAMES utf8;'); необходимо раскоментить, если в конфиге не прописана строка init-connect.
Вот и всё. Кстати, PostgreSQL удобнее -- в нём по умолчанию стоит utf8.

ps. Пишу этот пост и для себя, чтобы потом долго не вспоминать, что куда писать.
+6
xcr20.04.09 15:03# +1
Спасибо, полезно
Когда работал веб-девелопером, часто сталкивался с проблемами с кодировкой mysql. Как-то раз хотел найти решение, но я тогда еще слабо владел гуглингом )
zwey20.04.09 15:32# +1
Спасибо за хороший мануал. Какраз недавно с такой проблемой сталкивался...

Top блогов (все)
Топ пользователей Топ блогов
Топ пользователей Топ блогов
Top пользователей (все)
Топ пользователей Топ блогов
welinux.ru
Идея сайта exelens; Движок 0byte, разработчик nvbn; Дизайн - Astramak

В хорошем качестве hd видео

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн