Проблема с именами таблиц под Win

Anton

Just Programmer
Проблема с именами таблиц под Win

Добрый ден всем. :)

Есть такая проблема ... Востоновливаю дамп БД MySQL сделанный под линухом на MySQL установленном под Win.

Все хоршо, все работает, все замечательно, но есть одна проблема, все имена таблиц становяться строчными буквами.

Само по себе под виндами это не мешает работать, но так как приходиться переносить БД обратно с линух то возникает проблема, так как в дампе сделанном под виндами все имена таблиц строчными буквами.

Как побороть этот перевод названий таблиц в строчные буквы? У меня Win2003.

Варианты ручной переработки дампа, перерабтки скриптом или устанвоик у себя сервера под линухами не предлагать :)

Всем в заранее спасибо.
 

Anton

Just Programmer
Пордон, опечатка:))) Не "добрый ден", а "добрый день":))
Приношу извинения.
 

nagash

Guest
надо было думать когда создавал названия таблиц...
теперь берёшь вариант номер один (из тех которые тебе нельзя предлагать) и начинаешь их приводить в нормальный вид...
 

eddie

Новичок
If you have trouble remembering the lettercase for database and table names, adopt a consistent convention, such as always creating databases and tables using lowercase names.

One way to avoid this problem is to start mysqld with -O lower_case_table_names=1. By default this option is 1 on Windows and 0 on Unix.

If lower_case_table_names is 1 MySQL will convert all table names to lowercase on storage and lookup. (From version 4.0.2, this option also applies to database names.) Note that if you change this option, you need to first convert your old table names to lower case before starting mysqld.
 

Krisha

pain in the neck
простите, а нельзя ли настроить под виндами мускуль вот так:

my.cnf

раздел - [mysqld]

добавляем строку:
set-variable = lower_case_table_names=OFF
 

Апельсин

Оранжевое создание
а толку? это внесет еще большую путанницу, т.к. винда сама создает файлы в нижнем регистре, а эта директива дает указание только как MySQLю работать, а таблицы то все равно в нижнем регистре будут.
 

Krisha

pain in the neck
2Апельсин
Дело в том, что у меня винда не создала файлы в нижнем регистре, вот пример тех фалов, которые у меня сейчас есть:

LessonInrtoComments.frm
LessonInrtoComments.MYI

и соответственно таблицы так и называются, собстна вопрос, может быть я чего-то не так понял ?
 

Апельсин

Оранжевое создание
ой-ой, виновата, не то сказала.

винда не чуствитьельна к регистру, т.е. как бы ты не выставлял настройки таблицы AA и aa будут у тебя всегда считаться одной и той же.

а вообще лучше использовать в таких случаях имена таблиц всегда в нижнем регистре.
 

Popoff

popoff.donetsk.ua
[sql]show variables like "lower_case_table_names";[/sql]
Дурацкая переменная с неправильным значением по умолчанию. Я по поводу ее уже где-то в этом форуме писал...
 

Апельсин

Оранжевое создание
> Дурацкая переменная с неправильным значением по умолчанию.

ээ .. по умолчанию под юнихами она равно 0, под виндами - 1.
какое из этих двух допустимых значений неправильное? :D
 

Popoff

popoff.donetsk.ua
Автор оригинала: Апельсин
> Дурацкая переменная с неправильным значением по умолчанию.

ээ .. по умолчанию под юнихами она равно 0, под виндами - 1.
какое из этих двух допустимых значений неправильное? :D
единица неправильная, потому что я ввожу одни данные, а хранятся совсем другие данные, которые только похожи на исходные. данные должны храниться в таком виде, как они были введены. если для работы необходимы преобразованные данные, то преобразуем при каждом доступе. если преобразование занимает много времени, то храним дубликаты. это я думаю, что так правильно.

http://phpclub.net/talk/showthread.php?postid=250502#post250502
 

Micx

Guest
Автор оригинала: nagash
надо было думать когда создавал названия таблиц...
теперь берёшь вариант номер один (из тех которые тебе нельзя предлагать) и начинаешь их приводить в нормальный вид...
Есть еще один - ПОДОБНЫЙ . Идешь в c:\mysql\data
Находишь свою базюку, и правишь названия файлов в нужном тебе регистре.
После дампа, остается только поменять названия таблиц в CREATE TABLE
В тегах INSERT регистр должен сохранится.

P.S Тоже кривой способ..
 

Anton

Just Programmer
Добрый утром всем! :)

Спасибо большое за советы, наиболе понраивлся метод решени проблемы с использованием

lower_case_table_names=OFF

Только можно для чайников немного поподробнее ...

Я покапашился в мануале и создал в виндовой папке файл my.ini, в него написал следующее:

[mysqld]
set-variable = lower_case_table_names=OFF

А во ответ на это, MySQL при запуске пишет:
Unknown prefix used for variable value 'lower_case_table_names=OFF'
 

Krisha

pain in the neck
2Anton
В корне диска С: кладешь файл my.cnf взять его можно в папке с мускулем, в этом файле есть раздел [mysqld] вот там и нужно прописать эту строку:

Да именно так: set-variable = lower_case_table_names=OFF оно работает у меня.

p.s. хотя у меня не самая новая версия, может быть в более новых set-variable не нужно
 

Anton

Just Programmer
Нет у меня такого файла, я его уже искал :)

А можете мне его прсилать по почте? [email protected]

Буду ОООООЧЕНЬ признателен. :)
 
Сверху