Перейти к содержимому

Последние записи

4
Май

MySQL и регистро-зависимость имен в MacOS X

Всем привет.
Столкнулся тут на днях со следующей проблемкой. Я работаю на Mac OS X, и поэтому все необходимое для разработки ПО у меня стоит на моем компе, тот же Апач, Пых (они вообще идут из коробки) ну и Майскуль.
Так вот, решил я для одного нового проекта заюзать MySQL Workbench. Это такая утилита, в которой можно построить UML-схему базы данных, все красиво разрисовать и потом слить эту структуру в конечную БД, так же есть Reverse Engineering. В общем, первое сливание текущей структуры из БД прошло гладко, а вот первая же заливка изменений в БД уже не получилась. Не смотря на то, что Workbench честно показывал изменения, после накатывания аптейта, он все равно продолжал считать, что все структуры разные. Дело в том, что я люблю называть таблицы красивыми именами, отражающими действительность, с заглавными буквами, разве что в дополнение к CamelCase стилю еще разделяю слова символом подчеркивания. Так вот после долгих изучений и изысканий обнаружилось, что установки по умолчанию в MySQL Server на Mac OS, не очень подходят для моего случая.

Как известно, в MySQL, база данных соответствует определенной директории на сервере, и каждая таблица хранится в виде файла (или нескольких в зависимости от движка). Поэтому регистро-чувствительность ОС играет немаловажную роль в обработке регистро-чувствительности при разрешении имен в базе данных. Это означает, что если ваш сервер на винде, то ему пофиг на регистр, в *nix-подобных системах же наоборот, регистр имеет значение, за исключением Mac OS, которая вроде как юникс, а файловая система там HFS+, которая не очень чувствительна к регистру.

В MySQL сервере есть 2 системных переменные которые имеют отношение к регистру имен, это lower_case_file_system и lower_case_table_names. Первая переменная отражает регистрочувствительность файловой системы, где расположено хранилище, оно может принимать всего два значения: OFF — фс чувствительная к регистру и ON — не чувствительна.
Вторая переменная, lower_case_table_names, отражает механизм, как происходит сравнение имен и способ их хранения. 0 означает, что имена сохраняются в том виде, в котором были заданы и сравнение чувствительно к регистру. При значении 1, имена таблиц хранятся в нижнем регистре и сравнение не чувствительно к регистру. В случае 2, имена хранятся как есть, но сравнение происходит в нижнем регистре.

По умолчанию эти переменные принимают вот такие значения на Mac OS X:

И вот такие на *nix (проверил на Linux/FreeBSD)

 

Если почитать описание этих переменных на сайте mysql (тут), то там написаны замечательные рекомендации по выставлению правильных параметров переменной lower_case_table_names. Если лень читать, то основная мысль: если вы используете InnoDB как основной движок, то поставьте везде этот параметр в 1.
Самый простой способ — это прописать эту переменную в файле конфигурации my.cnf в секцию [mysqld] и рестартануть Mysql сервер.

В общем-то я не открыл ничего нового, все это можно найти в офф. документации на сайте, статья: Identifier Case Sensitivity дает более развернутое описание этой ситуации. Рекомендую прочитать.
Вот и все!

23
Мар

Использование EM Grid Control для сбора информации о целях для отправки в My Oracle Support

Это седьмой и заключительный пост из серии «Управление инфраструктурой Oracle с помощью EM Grid Control 11g«. В нем я хочу рассказать о том, как можно использовать ваш EM Grid Control для сбора и отправки информации о компонентах вашей инфраструктуры в My Oracle Support.

ПодробнееRead more

22
Мар

Подключение плагинов для мониторинга стороннего ПО в Oracle EM Grid Control на примере MySQL и MS SQL Server.

Это шестой пост из серии «Управление инфраструктурой Oracle с помощью EM Grid Control 11g«. В нем я хочу рассказать о том, как можно расширить возможности EM Grid Control по мониторингу разного стороннего ПО. В EM для этого предусмотрен механизм плагинов мониторинга.

ПодробнееRead more

21
Мар

Настройка параметров мониторинга баз данных Oracle в EM Grid Control 11g

Это пятый пост из серии «Управление инфраструктурой Oracle с помощью EM Grid Control 11g» и посвящен он настройке параметров для мониторинга состояния баз данных Oracle.

ПодробнееRead more

18
Мар

Настройка отправки уведомлений о критических сообщениях по почте в Oracle EM Grid Control 11g

Это четвертый пост из серии «Управление инфраструктурой Oracle с помощью EM Grid Control 11g» и посвящен он настройке отправки уведомлений о критических событиях и предупреждениях в Oracle Enterprise Manager Grid Control 11g.

ПодробнееRead more

17
Мар

Установка Oracle EM Management Agent на linux-сервер с установленным ПО Oracle

Это третий пост из серии «Управление инфраструктурой Oracle с помощью EM Grid Control 11g» и посвящен он установке Management Agent на другие хосты в вашей сети, для мониторинга установленного ПО Oracle, и отправки этих данным в EM Grid Control.

ПодробнееRead more

16
Мар

Установка Oracle Enterprise Manager Grid Control 11g

Это второй пост из серии «Управление инфраструктурой Oracle с помощью EM Grid Control 11g» и посвящен он непосредственно установке Oracle Enterprise Manager Grid Control 11g.

ПодробнееRead more

15
Мар

Установка Oracle WebLogic Server 10.3.x


Это первый пост из серии «Управление инфраструктурой Oracle с помощью EM Grid Control 11g» и посвящен он установке Oracle WebLogic Server 10.3.2.

ПодробнееRead more

15
Мар

Управление инфраструктурой ПО с помощью Oracle EM Grid Control 11g

Я решил написать серию заметок о Oracle Enterprise Manager Grid Control 11g. Начну, пожалуй, с краткой вводной об это замечательном продукте. Вообще, на сайте Oracle сказано много громких слов про этот продукт, о том, что в современном мире, IT-компании активно используют всевозможные технологии и инструменты, начиная от Service-Oriented Architecture (SOA) и заканчивая Cloud Computing, все более распространенными становятся SaaS-системы, и соответственно вопросы обслуживания и мониторинга своих решений имеют все более критическое значение в жизни компании, в ее бизнесе. Так вот EM Grid Control занимает центральное место в инфраструктуре компании, забирая на себя почти все вопросы мониторинга и обслуживания всех компонентов, начиная от баз данных, серверов приложений, компонентов операционной системы и заканчивая мониторингом железа. Grid Control позволяет эффективно управлять и планировать апгрейды системы, выявлять заранее потенциально узкие места, тем самым повышая стабильность и отказоустойчивость всей инфраструктуры. (* Круто сказал, даже самому понравилось *)

ПодробнееRead more

15
Фев

Забавные часы

Салют! Пока я тут болел и находился дома, пришла в голову мыслишка сделать часики в браузере. В общем-то ничего особенного, если не одно НО, двигается не секундная стрелка, а двигается сам циферблат. 🙂 Впрочем, чего говорить, когда проще один раз показать: смотреть тут.
Добавлю разве что здесь нет никаких JS-фреймворков, а-ля jQuery, ExtJS и прочих, нет <CANVAS>, только несколько дивов и правильный CSS.