1 (изменено: Sj, 2007-10-04 15:55:49)

Тема: Cant initialize character set

Установил MySQL на свой комп.
Сначала сделал установку в c:\MySQL.
Потом деинсталировал MySQL и инсталировал еще раз в папку C:\Server.
Инсталировал mysql-connector-odbc-3.51.20-win32.msi.
Подключился к mysql через ODBC - тестинг удачно проходит, сообщений об ошибок нет.
Очень обрадовался.
Запустил Delphi 6.
Пытаюсь подключиться через ADOConnection1.
Строка соединения:
Provider=MSDASQL.1;Password=221272;Persist Security Info=True;User ID=root;Data Source=LocMySQL
При тестировании выдает error [MySQL] [ODBC 3.51 Driver ] "сабж".
При чем путь показывает ( path c:\mysql\\share\charester\
"\\" -настораживает два знака "\\"
Покопался в интернете и продублировал данную папку по этому пути "share\charester\
", но результата это не принесло.
Что можно сделать?

2

Re: Cant initialize character set

Sj
В разделы [client] и [mysqld] конфигурационного файла MySQL (my.ini) добавьте директиву
character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.0/share/charsets"
Путь установите свой.

3 (изменено: Sj, 2007-10-05 12:56:53)

Re: Cant initialize character set

Спасибо! Это помогло. Правда, для того, чтобы это заработало нужно было еще удалить из
"Источники данных (ODBC)" данную строку подключения и снова ее определить.
Но теперь ситуация преобрела новый статус:
после удаления старого определения и добавления нового с теми же параметрами в Дельфи
ADOConnection1 проходит тестирование один единственный раз, после чего при нажатии на "Проверить подключение"
выдает "Ошибка связи с данными" "Не выполнена проверка подключения из-за ошибки при инициализации поставщика. Разрушительный сбой.", хотя дает выбрать базу.

Сейчас попробовал подключение не указавав "Начальный каталог". Результат: проверка подключения выполена. Такое ощущение, что user ROOT  просто не имеет права на подключение к какой-то базе, что ли ?
Что можно сделать, чтобы исправить ситуацию?

в 13:31 наконец-то понял, что начальный каталог таки не надо задавать. Для подключения сразу используем
ADODataSet1, где можно сразу в commandtext указывать команду выборки.

Но теперь ситуация преобрела новый статус:
До этого я пробовал работать с MySQL установленным локально на моем компе.
Теперь пытаюсь подключиться по локальной сетке
C:\Server\MySQL\bin\mysql.exe -h 192.168.97.167 -P 3306 -u root -p******

Но вылетает ошибка 1130, о которой в интернете написано так много, что выявить истинную причину ее появления настолько сложно, что практически невозможно.
Что нужно сделать, чтобы получить доступ к MySQL по IPишнику?

4

Re: Cant initialize character set

Sj сказал:

Но вылетает ошибка 1130, о которой в интернете написано так много, что выявить истинную причину ее появления настолько сложно, что практически невозможно.
Что нужно сделать, чтобы получить доступ к MySQL по IPишнику?

1130 означает, что ответ от сервера не получен и соединение установлено быть не может. Причин очень много: брандмауэры клиента и сервера блокируют пакеты, сервер MySQL закрыт для внешних подключений (изначально открыт), пользователь через которого идет подключение не имеет прав для внешнего подключения (например root изначально может подключаться только с localhost).

Для внешнего подключения используйте отдельно выделенного пользователя задав ему только необходимые привилегии. Оставьте root только на localhost, иначе возможный взлом будет иметь очень плохие последствия, к тому же на Windows.

5 (изменено: Sj, 2007-10-05 14:33:09)

Re: Cant initialize character set

Да.Спасибо!!!!  Именно так. Добавил пользователя с доступом имя@%
Только какие именно права ему назначать?

Но теперь ситуация преобрела новый статус:
Через ODBC на удаленном компьютере я прекрасно подключаюсь к MySQL.
Но теперь мне надо организовать подключение SQL Server 2000 с использованием настройки ODBC

Линкую сервер через интепрайс менеджер.
Product Name: имя в ODBC
Data Source: имя в ODBC
Provider String: Provider=MSDASQL.1
Location:
Catalog:

При попытке просмотреть таблицы из манагера выдает ошибку 7399 OLE DB выдает отчет об ошибке ( перевод мой. )
Мол не настроены драйвера подключения.
Что нужно указывать при линковке MySQL к SQL Server 2000?

6

Re: Cant initialize character set

Sj сказал:

Добавил пользователя с доступом имя@%
Только какие именно права ему назначать?

Так как у вас нет опыта использования MySQL, то самым простым и удобным будет использование phpMyAdmin, как своеобразное справочное пособие. Зайдите на страницу "Привилегии", выберите пользователя и посмотрите подписи под возможными привилегиями, они вполне описательны. Для обычных скриптов вроде форумов, как правило достаточно SELECT, INSERT, UPDATE, DELETE. Далее полагайтесь на логику, скажем GRANT привилегии задавать не надо, так как они позволяют создавать пользователей и назначать им привилегии, то есть подобные возможности должны принадлежать только администратору. В общем привилегий из разделов "Администрирование" и "Структура" у обычных пользователей быть не должно. Обратите также внимание, что привилегии можно задавать не только глобальные, но и уровня баз данных и даже таблиц. Например БД mysql содержит данные пользователей MySQL, в том числе и хеши паролей, соответственно к ней не должно быть прав даже на выборку данных.

Sj сказал:

Что нужно указывать при линковке MySQL к SQL Server 2000?

С такой задачей никогда не сталкивался, поэтому помочь не могу.

7

Re: Cant initialize character set

Спасибо за оказанную помощь и поддержку.