SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 29.05.2014 09:20:56

Cheb
Завсегдатай
Зарегистрирован: 27.12.2013
Сообщений: 28

прокомментируйте код

SET FOREIGN_KEY_CHECKS=0;

CREATE DATABASE `name_db`
    CHARACTER SET 'cp1251'
    COLLATE 'cp1251_general_ci';

Прокомментируйте этот код,пожал.

Первая строка - это отключение проверки  внешних ключей. Зачем это нужно?
А дальше "CHARACTER SET"  в этой кодировке будут хранится данные?
И "COLLATE" Зачем это указывать вообще? Разве "CHARACTER SET"  не достаточно?

Отредактированно Cheb (29.05.2014 09:21:41)

Неактивен

 

#2 29.05.2014 10:43:01

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: прокомментируйте код

Cheb написал:

Первая строка - это отключение проверки  внешних ключей. Зачем это нужно?

Иногда нужно временное отключение проверки внешних ключей, например, чтобы сделать импорт. Уберите эту строчку и внимательно посмотрите на сообщение об ошибке.

Cheb написал:

А дальше "CHARACTER SET"  в этой кодировке будут хранится данные?

Нет, это кодировка по умолчанию, которая будет использована, например, при создании таблиц, если вы не укажите её явно.

Cheb написал:

И "COLLATE" Зачем это указывать вообще? Разве "CHARACTER SET"  не достаточно?

http://sqlinfo.ru/articles/info/2.html

Неактивен

 

#3 29.05.2014 10:48:37

Cheb
Завсегдатай
Зарегистрирован: 27.12.2013
Сообщений: 28

Re: прокомментируйте код

Вот спасибо. Особенно про Collate

Неактивен

 

#4 29.05.2014 11:42:15

Cheb
Завсегдатай
Зарегистрирован: 27.12.2013
Сообщений: 28

Re: прокомментируйте код

А еще вот что.

дал команду


mysql> SHOW VARIABLES LIKE 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
 

Можно ткнуть в грамотный источник по каждой переменной на русском, если не трудно. Интересно, зачем они и на что влияют. А то я смотрю у меня что-то на utf8 , а что-то на latin1. Нафига такие сложности не пойму.

Когда же наконец все люди будут разговаривать на одном языке? Эх, и зачем это люди взялись строить вавилонскую башню, если б они знали сколько проблем создадут программистам в будущем с этими кодировками!!lol

Отредактированно Cheb (29.05.2014 11:42:32)

Неактивен

 

#5 29.05.2014 11:46:52

Cheb
Завсегдатай
Зарегистрирован: 27.12.2013
Сообщений: 28

Re: прокомментируйте код

прокомментируйте, если не трудно, какие подводные камни меня ожидают с такими настройками?

Отредактированно Cheb (29.05.2014 11:54:48)

Неактивен

 

#6 29.05.2014 11:55:03

Cheb
Завсегдатай
Зарегистрирован: 27.12.2013
Сообщений: 28

Re: прокомментируйте код

И плюс вот эти настройки

mysql> SHOW VARIABLES LIKE 'collat%';
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | utf8_general_ci   |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+

Неактивен

 

#7 29.05.2014 12:39:30

Cheb
Завсегдатай
Зарегистрирован: 27.12.2013
Сообщений: 28

Re: прокомментируйте код

не пойму сервер не запускается
после того как прописал  в my.cnf
[mysql]
default-character-set=utf8

[mysqld]
default-character-set=utf8


в логах ошибка
140529 15:05:24 InnoDB: 5.5.37 started; log sequence number 2655411
140529 15:05:24 [ERROR] /usr/sbin/mysqld: unknown variable 'default-character-set=utf-8'
140529 15:05:24 [ERROR] Aborting

Отредактированно Cheb (29.05.2014 13:14:41)

Неактивен

 

#8 29.05.2014 13:23:07

Cheb
Завсегдатай
Зарегистрирован: 27.12.2013
Сообщений: 28

Re: прокомментируйте код

все разобрался


    [mysqld]
    init_connect=‘SET collation_connection = utf8_unicode_ci’
    character-set-server = utf8
    collation-server = utf8_unicode_ci

    [client]
    default-character-set = utf8
 


http://gahcep.github.io/blog/2013/01/05/mysql-utf8/

Отредактированно Cheb (29.05.2014 13:23:57)

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson