IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Веб-программирование (https://www.imho.ws/forumdisplay.php?f=29)
-   -   Помогите настроить MySql (https://www.imho.ws/showthread.php?t=62430)

Deadlock 23.06.2004 14:59

Помогите настроить MySql
 
Проблема в кодировках. При создании таблиц, в каталоге с данными появляются соответсвующие файлы, но имена их не разбрать(кодировка не та). При насильном выставлении русской кодировки на сервер, он ваще не стартует!!! :confused:

П.С. Вот кусок файла настройки

#Path to the character-sets directory.
#character-sets-dir=c:/mysql/share/charsets

#Set the default character set.
#default-character-set=win1251

П.П.С Если выставить кодировку latin1, то сервак стартует.
ХЕЛП !!! :молись:

_ARMAGEDDON_ 23.06.2004 15:10

попробуй так
default-character-set=cp1251

Saruman 23.06.2004 15:17

Deadlock
Цитата:

в каталоге с данными появляются соответсвующие файлы, но имена их не разбрать(кодировка не та)
А ты таблицы по-русски называешь, что ли, что на их имена кодировка влияет?

Sheryld 23.06.2004 17:02

если ты имеешь ввиду кодировку в конфигурационном файле(my.ini), то:

для сервера(в даном случае сервер - демон):
[mysqld]
default-character-set=cp1251
character-sets-dir=path_To_MySql_Directory/share/charsets

для клиента:
[client]
default-character-set=cp1251
character-sets-dir=path_To_MySql_Directory/share/charsets

проверка:
mysql->status, везде жолжно стоять то, что указано:cp1251(в данном случае)

также наверное придеться перестроить индексы.

-----------------------------------------------------------------

по-поводу файлов.
mysql тут не причем, за файлы(точнее отображение их имен), отвечает ос. может быть mysql не умееет создавать корректно названия файлов в кирилице - не знаю не проверял.

вообще лучше называть базы, таблица, атрибуты и т.д. на английском.

Hubbitus 23.06.2004 23:54

Цитата:

Saruman:
А ты таблицы по-русски называешь, что ли, что на их имена кодировка влияет?
Тоже это мне очень удивительно, только на файлы влияют имена не таблиц, а создаваемых Баз. Но вопрос остается открытым...

Deadlock 24.06.2004 03:08

Все дело из-за чего... Конвертил я базы msaccess в mysql. MySqladmin(тот что на пэхапэ) видиит все нормально, а вот при запросе из моей странички выдает, что таблица не существует, и имя таблицы пишет кракозябрами.

Переделывать имена таблиц в англицкие я задолбаюсь.
В любом случае, если в конфигурации сервера стоит русская кодировка, то он не стартует!!!!

Saruman 24.06.2004 03:19

Deadlock
Цитата:

MySqladmin(тот что на пэхапэ) видиит все нормально, а вот при запросе из моей странички выдает, что таблица не существует, и имя таблицы пишет кракозябрами
Может, в таком случае, ты просто скрипт свой пишешь не в той кодировке? К примеру, myadmin у тебя работает нормально в win1251, а скрипт в dos или koi8 написан. Соответственно и имена таблиц не будут совпадать, т.к. коды русский букв в различных кодировках разные.

Deadlock 24.06.2004 07:35

Такая лабуда началась при переходе с версии 3.х на 4.х сервака MySql. А с кодировкой скрипта все чудесно, она Win1251.

Saruman 24.06.2004 13:34

Deadlock
Если phpMyAdmin нормально работает, а твой скрипт - нет, то проблема у тебя в скрипте, а не в MySQL

Sheryld 24.06.2004 14:55

все. понял твою проблему.

утилиты mysql(под win к примеру), не понимают кирилицу!

провел тесты:

создание бд,таблиц, атрибутов с именами на кирилице.

результаты:

через mysql(стандартная утилита): создает, но кирилицу не понимает, т.е. например, сохдать бд с именем `тест1`. создается: вҐбв1

через phpMyAdmin: все работает как надо от баз данных до атрибутов таблиц.

Saruman 24.06.2004 15:13

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

Sheryld 24.06.2004 15:26

скрипт в студию.

Deadlock 25.06.2004 05:45

При создании таблицы через Sql, с русской кодировкой, пишет, что такой кодировки нет!!! Т.е. скорее всего, поэтому и сервер не стартует.

П.С. Перепробовал все варианты киррилицы и т.п.

Вощем в итоге проблема не решена. Злобно как-то выходит :(

Hubbitus 25.06.2004 12:40

Цитата:

Deadlock:
При создании таблицы через Sql, с русской кодировкой, пишет, что такой кодировки нет!!!
Тоесть с русской кодировкой в названии таблицы? Дак просто не нужно использовать русские символы и все....

Saruman 25.06.2004 16:38

Deadlock
Товарищ, телепаты в отпуске, так что определись уже, в чем твоя проблема. Сначала ты говоришь
Цитата:

запросе из моей странички выдает, что таблица не существует, и имя таблицы пишет кракозябрами
Потом оказывается, что
Цитата:

При создании таблицы через Sql, с русской кодировкой, пишет, что такой кодировки нет
Если хочешь услышать нормальные ответы - задавай нормальные вопросы. Если не работает скрипт - показывай код скрипта, если не создается таблица - давай дамп таблицы, sql-код, который пытаешься выполнить, и т.п.

Deadlock 26.06.2004 04:40

Объясняю (то что выяснил уже).

В версии 4.1.1. сервака нельзя выставть кодировку отличную от latin1(та что по умолчанию). В итоге, при создании таблиц (в моем случае это конвертацию таблиц с русскими именами из msaccess в mysql специальной прогой (пробовал разные)) происходит создание таблиц с неправлиной кодировкой имен. Т.е. таблицы стают недоступны для запросов и т.п.

Кое-как работает MySqlAdmin, но опять же, имена таблиц не в той кодировке.

Переделка имен таблиц займет уйму времени!!! Придется переделывать тонну запросов.

В итоге я хочу получить ту же msaccess базу, но с подключением таблиц через коннектор к Mysql. Получится так что на сайте будут данные синхронзированны, и эти же данные я могу использовать для создания отчетов и т.п. в MsAccess.

Ghost 27.06.2005 13:41

Всем хай! Возникли непонятки с кодировками в mySQL и решил поднять тему.

Итак... Решил я поэкспериментировать с 5-ой версией (раньше жил на 4-ой). Всем абсолютно доволен, но... Возникли напряги с кодировками, а именно: есть там 5 системных переменных character-set-server, -client, -connection, -results и -database. Стартую службу и они устанавливаются в следующие значения: cp1251 - для server и database, latin1 - для client, connection и results. Что, есессно, меня не устраивает, ибо выборки идут криво. Можно, конечно, каждый раз при подключении к серверу насильно устанавливать кодировку ('SET NAMES cp1251;'), но хотелось бы что-бы это происходило автоматом. Отсюда вопрос: как?

Вот мой my.ini (или my мой.ini ;)) после кучи экспериментов, так и не приведших к нужному результату:
Код:

[client]
default-character-set=cp1251
character-set-connection=cp1251
character-set-client=cp1251
character-set-results=cp1251
port=3306

[mysql]
default-character-set=cp1251

[mysqld]
bind-address=1.1.1.1
port=3306
basedir="_MYSQL_DIR_/"
datadir="_MYSQL_DIR_/Data/"
character-sets-dir="_MYSQL_DIR_/share/charsets/"
character-set-server=cp1251
default-character-set=cp1251
language="_MYSQL_DIR_/share/english/"
default-storage-engine=MYISAM
max_connections=100
query_cache_size=0
table_cache=256
tmp_table_size=5M
thread_cache=8
myisam_max_sort_file_size=100G
myisam_max_extra_sort_file_size=100G
myisam_sort_buffer_size=8M
key_buffer_size=4M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=212K
skip-innodb

З.Ы. Ой, сорри, чуть не забыл: версия - 5.0.2-alpha

З.З.Ы. Модерам: кстати поиск по слову "default-character-set" дал кучу тем (кроме этой) с практически идентичными названиями:
Неправильная сортировка русских слов (MySQL)
MYSQL неправильно сортирует алфавитные данные
тсранные проблемы со сменой кодировки в mysql 3.23.5x
Character set, MySQL
Может, стоит объединить?

З.З.З.Ы. Советы сменить default-character-set на предлагать - как видите по конф-файлу уже стоит... :(

З.З.З.З.Ы. Кстати, обратил только внимание на еще один глюк: по дефолту при коннекте двух разных клиентов устанавливаются разные значения переменных -server и -client:
- latin1 и cp1251 соответственно для mysql.exe;
- сp1251 и latin1 соответственно для sqlyoug4.
Т.е. к одному и тому же серверу два различных клиента подключаются и выдают различные значения системных переменных. :(

Псих 13.07.2005 17:08

Ребята у меня такая трабла, не знаю, правильно ли я пишу, но я в этом деле пока что зеленый, так что простите если что.

Создаю таблицу в phpmyadmin
а когда делаю инсерт и ввожу значения русс. буквами получаю (англ. нормально)

10 ???? ???????
в разделе структура написано следующие
NAME char(30) latin1_swedish_ci
как это изменить..
Прочитал тему, в my.ini изменил кодировку юзера и mysqld но не помогло. ЧТо делать?

ЗЫ извините, если ошибся топом.

Ghost 13.07.2005 18:47

Псих
Перед вставкой выполняй 'SET NAMES cp1251;'. Но, собсно, я тоже жду ответа, как это можно сделать автоматом, т.е. настроить сам мускл, шоб не приходилось выполнять такой запрос... :idontnow: Пока все молчат. Видать у тебя тоже версия 5 с копейками... :(

Hubbitus 13.07.2005 19:29

Псих, измени collation (Сравнение) для столбца и/или таблицы и/или базы данных на какую-нибудь содержащую русские символы (ну или на юникод, если его хочешь использовать), например на cp1251_general_cs.

Это меняется для таблицы на вкладке "Операции" например. Для остального надеюсь тоже найдешь.

Псих 14.07.2005 15:55

А еще вопрос, можно?
В бд все ок. Спасибо.
Но когда делаю
Код:

echo "$a[title]"
тоесть вывод имени.
Мне выдает все равно ??????????????

Опять так, сорри, если не в ту тему написал!

Псих 14.07.2005 17:24

Я думаю, тут надо кодировку на странице выбрать.
Код:

<META content="text/html; charset=windows-1251" http-equiv=Content-Type>
не помогает :(
В конфиге апача поставил AddDefaultCharset WINDOWS-1251
не спасло ;(

Hubbitus 15.07.2005 13:07

Псих, дак а в какой кодировке выдается сам документ, посмотри.

А потом подбери в браузере кодировку для этого текста (ну перебери несколько пока не станет читаемым) ну и выдавай эту страницу в найденной нужной.

Псих 15.07.2005 13:24

ХМ..
База данных выдает данных в кодировке cp1251_general_cp
Браузер открывает его Window Cyrillic Alphabet.
Перепробовал все кирилические кодировки. никакая не помогла.

Hubbitus 15.07.2005 15:51

Странно, если база в cp1251_general_cp и в ней данные нормально, то поидее при просмотре страницы в кодировке Windows-1251 все должно читаться.

А в базе и смотрится русский и редактируется нормально с этим collation?

Дай хоть ссылку на страницу где можно кодировку поподбирать.

Псих 15.07.2005 20:12

Да внутри базы все ок. Все буквы отображает.
Базу дампил тоже все ок.
Думаю апач не правильно настроен.
Или сам мускуль конфиг.
Весь день роюсь. ничего не нарыл!
Хм страница в локале.. пока базу перенесу..

Hubbitus 18.07.2005 13:57

Тогда еще может быть проблема в кодировке клиента (ПХП в данном случае) - попробуй полученную строку поперекодировать из разных кодировок, тогда если найдешь, сможешь в нем прописать в какой нужно.

Raman 18.07.2005 15:25

Ребята, как я понял, у вас проблема с кодировкой НЕ MySQL или Apache - а PHP.

Откройте файл php.ini и в нем найдите "default_charset"

Очень вероятно, что там стоит по-умолчанию:
default_charset = "iso-8859-1"

Или белиберда.

Закомментируйте - и все будет гуд.


Часовой пояс GMT +4, время: 05:58.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.