Документация MySQL

25.04.2009

Наши усилия направлены на то, чтобы сервер MySQL соответствовал стандартам
ANSI SQL и ODBC SQL, но в некоторых случаях сервер MySQL функционирует
по-другому. Ниже приведен перечень таких отличий:
при хранении величины концевые пробелы удаляются
(see section ).
(see section ).
Привилегии для таблицы не аннулируются автоматически при удалении
таблицы; чтобы удалить привилегии для таблицы, необходимо явно вызвать
(see section ).
, а не как
. Причина
здесь в том, что мы не считаем необходимым оценивать множество
дополнительных условий для этого случая.
Если вас интересует, когда к серверу MySQL будут добавляться новые
расширения, необходимо обратиться к онлайновому списку перспективных задач
к выполнению, в котором дан их перечень в порядке приоритетности. Он
находится по адресу
. Это самая
последняя версия списка задач к выполнению (TODO list) в данном
руководстве (see section
).

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Рубрики: Без рубрики |

Оставить комментарий

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.

Документация MySQL

25.04.2009

Сам MySQL не имеет проблем, связанных с Проблемой-2000 (Y2K):
В MySQL используются функции времени Unix, поэтому проблемы с
датами, вплоть до
, исключены. Принимается, что все двузначные
значения годов находятся в диапазоне с
, поэтому число
.
Все MySQL-функции, обрабатывающие даты, хранятся в одном файле
'sql/time.cc'
. Их код был написан очень тщательно, чтобы
застраховаться от проблем, связанных с 2000-м годом.
В версиях MySQL 3.22 и более поздних в столбцах с новым типом
,
который обеспечивает хранение нулевого
в одном байте, а также отображение дат при помощи 2 или 4
знаков.
Проблемы, связанные с 2000-м годом, могут возникнуть в приложениях,
которые используют MySQL так, что это может оказаться небезопасным
с точки зрения Y2K. Например, во многих старых приложениях для хранения и
обработки значений годов используются 2-значные величины (которые можно
трактовать неоднозначно), а не 4-значные. Эта проблема может быть
урегулирована при помощи приложений, которые используют
как
''отсутствующие'' индикаторы значений.
К сожалению, такие проблемы бывает сложно устранить, так как разные
приложения могут быть написаны разными программистами, каждый из которых
мог применять отличный от других набор соглашений и обрабатывающих
значения даты функций.
Приведенный ниже код является наглядной демонстрацией того, что в MySQL
Server проблемы с датами вплоть до 2030 года отсутствуют.
mysql> DROP TABLE IF EXISTS y2k;
Query OK, 0 rows affected (0.01 sec)

mysql> CREATE TABLE y2k (date DATE,
-> date_time DATETIME,
-> time_stamp TIMESTAMP);
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO y2k VALUES
-> ("1998-12-31","1998-12-31 23:59:59",19981231235959),
-> ("1999-01-01","1999-01-01 00:00:00",19990101000000),
-> ("1999-09-09","1999-09-09 23:59:59",19990909235959),
-> ("2000-01-01","2000-01-01 00:00:00",20000101000000),
-> ("2000-02-28","2000-02-28 00:00:00",20000228000000),
-> ("2000-02-29","2000-02-29 00:00:00",20000229000000),
-> ("2000-03-01","2000-03-01 00:00:00",20000301000000),
-> ("2000-12-31","2000-12-31 23:59:59",20001231235959),
-> ("2001-01-01","2001-01-01 00:00:00",20010101000000),
-> ("2004-12-31","2004-12-31 23:59:59",20041231235959),
-> ("2005-01-01","2005-01-01 00:00:00",20050101000000),
-> ("2030-01-01","2030-01-01 00:00:00",20300101000000),
-> ("2050-01-01","2050-01-01 00:00:00",20500101000000);
Query OK, 13 rows affected (0.01 sec)
Records: 13 Duplicates: 0 Warnings: 0

mysql> SELECT * FROM y2k;
+------------+---------------------+----------------+
| date | date_time | time_stamp |
+------------+---------------------+----------------+
| 1998-12-31 | 1998-12-31 23:59:59 | 19981231235959 |
| 1999-01-01 | 1999-01-01 00:00:00 | 19990101000000 |
| 1999-09-09 | 1999-09-09 23:59:59 | 19990909235959 |
| 2000-01-01 | 2000-01-01 00:00:00 | 20000101000000 |
| 2000-02-28 | 2000-02-28 00:00:00 | 20000228000000 |
| 2000-02-29 | 2000-02-29 00:00:00 | 20000229000000 |
| 2000-03-01 | 2000-03-01 00:00:00 | 20000301000000 |
| 2000-12-31 | 2000-12-31 23:59:59 | 20001231235959 |
| 2001-01-01 | 2001-01-01 00:00:00 | 20010101000000 |
| 2004-12-31 | 2004-12-31 23:59:59 | 20041231235959 |
| 2005-01-01 | 2005-01-01 00:00:00 | 20050101000000 |
| 2030-01-01 | 2030-01-01 00:00:00 | 20300101000000 |
| 2050-01-01 | 2050-01-01 00:00:00 | 00000000000000 |
+------------+---------------------+----------------+
13 rows in set (0.00 sec)
Можно видеть, что при использовании типов
проблем с датами
будущего не возникнет (эти типы ''справляются'' с датами вплоть до 9999
года).
, который используется для сохранения текущего времени, имеет
диапазон только до
. В 32-разрядных машинах
(значение со знаком). В 64-разрядных машинах этот
тип ''справляется'' со значениями времени до
года (значение без
знака).
Таким образом, даже несмотря на то, что MySQL является
Y2K-совместимым, ответственность за однозначную интерпретацию значений
даты ложится на плечи пользователя. See section
,
где приведены правила по работе MySQL с входными данными, которые
имеют неоднозначные значения даты (данные, содержащие 2-значные значения
года).

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Рубрики: Без рубрики |

Оставить комментарий

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.

Документация MySQL

25.04.2009

. See section
. Скрипт
, а затем инициализирует таблицы предоставления привилегий со
следующим набором привилегий:
который может делать
все, что угодно. Соединения должны устанавливаться с локального
компьютера.
Примечание пуст, поэтому кто
угодно может подсоединиться в качестве
без пароля и получить все
привилегии.
Создается анонимный пользователь, который может выполнять любые
операции над базами данных с именами
.
Соединения должны устанавливаться с локального компьютера. Это
означает, что любой локальный пользователь может подключиться без
пароля и будет воспринят сервером как анонимный пользователь.
Остальные привилегии запрещены. Например, обычный пользователь не
может использовать команды
.
Примечание : В Windows принятые по умолчанию привилегии отличаются от
указанных. See section
.
Поскольку сразу после установки программа совершенно не защищена, первым
делом необходимо задать пароль для пользователя MySQL
. Это можно
сделать следующим образом (обратите внимание, что пароль указывается при
помощи функции
. Все обычные пользователи (не
анонимные) могут модифицировать только свой собственный пароль при помощи
указанных выше команд или команды
.
Обратите внимание на то, что если пароль в таблице
обновляется
напрямую при помощи первого метода, требуется указать серверу на
необходимость перезагрузки таблиц привилегий (при помощи команды
), иначе изменения не будут учтены.
После того, как был задан пароль
, этот пароль необходимо будет
вводить, подсоединяясь к серверу как
.
пустым, тогда не придется его указывать во
время проведения дополнительных установок и тестирования. Тем не менее,
обязательно укажите его, прежде чем использовать сервер для любой реальной
работы.
, чтобы увидеть, как
задавать привилегии по умолчанию. Данный скрипт можно использовать как
основу для добавления других пользователей.
Если необходимо, чтобы изначальные привилегии отличались от указанных
выше, можно изменить базу
еще до ее запуска.
Чтобы полностью заново создать таблицы предоставления привилегий, удалите
все файлы с расширениями
'.frm'
,
'.MYI'
'.MYD'
в каталоге, где находится база
данных
в каталоге базы данных, который
выводится на экран при запуске команды
). Затем запустите
скрипт
(возможно, после добавления в него необходимых
привилегий).
Примечание : в более старых, чем 3.22.10, версиях MySQL файлы с расширением
'.frm'
удалять не следует. Если же случайно они были удалены, их следует
восстановить, скопировав из дистрибутива MySQL до запуска
.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Рубрики: Без рубрики |

Оставить комментарий

Заметьте: Включена проверка комментариев. Нет смысла повторно отправлять комментарий.