Подключиться к mysql

Модератор: Модераторы

Подключиться к mysql

Сообщение sign » 24.12.2009 16:37:55

Прочитал много и разное, но так и не понял, что нужно сделать, чтобы подключиться к mysql.
У меня в этом деле практики 0.
Максимум что делал, так это на дельфи цеплялся к BDE. Но там, как бы ничего такого знать не нужно.

Сейчас, когда решил переползти на лазаруса, тут то и споткнулся.
Версия 0.9.28.2
FPC - 2.2.4
Мои действия.
Положил на форму TMySQL50Connection, TSQLTransaction, TSQLQuery.

Поскольку на компе стоит денвер, то создал в нем базу данный (mysql) под именем newbase и заполнил её тестовыми данными.
В свойствах
TMySQL50Connection - DatabaseName указываю newbase,
TMySQL50Connection - HostName - 127.0.0.1

Пытаюсь сделать connected - фиг вам, говорит лазарь - Server connected failed.

TMySQL50Connection - HostName - localhost
Ошибка

Наверно, я что-то многого не знаю, если кому не в лом, ткните - где я мимо кассы пролетаю?

PS
Понаставил везде (C:\lazarus\libmysql.dll, 'там где проект'\libmysql.dll, system32\libmysql.dll)
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Подключиться к mysql

Сообщение Light13 » 25.12.2009 07:47:28

для подключения необходимо указать:
хост,
порт,
имя бд,
имя пользователя,
пароль.

В какой оболочке создавалась БД? И что вы указывали там для подключения?

http://wiki.lazarus.freepascal.org/Lazarus_Database_Tutorial/ru
Аватара пользователя
Light13
постоялец
 
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск

Re: Подключиться к mysql

Сообщение sign » 25.12.2009 10:01:01

Я в этом деле совсем чайник, так что если какую глупость пишу, заранее извините и смело поправляйте.
Базу данных я создал в денвере - http://www.denwer.ru/
посредством phpMyAdmin — системой управления MySQL5 через Web-интерфейс.
Хост - как я понял, это нужно что-то типа - localhost писать. Так и написал.
Порт - ??? Даже не знаю, что тут нужно прописывать.
Имя БД - пишу то имя, которое создал в денвере.
Имя пользователя и пароль? Денвер как то не спрашивает.
Я запускаю phpMyAdmin - через браузер (опера) - http://localhost/Tools/phpmyadmin/index.php
Он мне в ответ:
Добро пожаловать в phpMyAdmin 2.6.1
MySQL 5.0.45-community-nt на localhost как root@localhost
И вот тебе базы и делай что хочешь.
А в лазарусе я до этого момента (какой пароль и прочее) ещё не дошел.

Когда я выбрал через меню базу данных, то в первой строке - "Сервер: localhost БД: nnpcto"
Где физически на диске хранится БД я знаю, нашел.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Подключиться к mysql

Сообщение Vadim » 25.12.2009 11:23:04

sign писал(а):root@localhost

Вот это и есть имя пользователя - root, который заходит с компьютера localhost. MySQL всегда смотрит, с какого хоста заходит пользователь, поэтому имя пользователя получается составное. Если пароль после установки (или во время её) Вы не задавали, то пароль пустой.
Порт - 3306.
Таким образом Вам нужно подставить данные:
DatabaseName -> Имя Вашей БД
HostName -> localhost
Port -> 3306
User -> root
Этого должно быть достаточно.
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Подключиться к mysql

Сообщение sign » 25.12.2009 11:51:57

Огромное Вам спасибо!!!
Всё получилось!

Добавлено спустя 23 минуты 45 секунд:
Прошу прощения, но налетел на другую штуку. Как некоторые уже догадались - русский язык, точнее кракозябры вместо русского текста.

Почитал на эту тему что можно было найти.
Вроде как догадался, что в поле CharSet нужно прописать кодировку.
Делал так,

*писал очередную кодировку, выключал, включал доступ к базе (на всякий случай), затем в компоненте TSQLQuery выполнял запрос - select * from cons
Получал кракозябры и (иди на *)

Мой список кодировок (кстати, в это деле я тоже плаваю, поскольку до этого момента мне только один раз пришлось поставить имя шрифта в реестре для Database Desktop)
UTF-8, UTF8, WIN1251, cp866, cp1251
Как то это дело можно поправить или нужно переписать данные в базе?
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Подключиться к mysql

Сообщение Alexus » 25.12.2009 16:17:39

Попробуй:
Название_формы.SQLQuery1.Close;
Название_формы.SQLQuery1.SQL.Clear;
Название_формы.SQLQuery1.SQL.Add('SET character_set_client=`utf8`,character_set_connection=`cp1251`,character_set_results=`utf8`;');
Название_формы.SQLQuery1.ExecSQL;
Название_формы.SQLQuery1.SQL.Clear;
Название_формы.SQLQuery1.SQL.Add(s);
Название_формы.SQLQuery1.Open;

Поэкспериментируй (там где выделено)с разными кодировками

Добавлено спустя 2 минуты 49 секунд:
Строчку SQLQuery1.SQL.Add(s) замени на SQLQuery1.SQL.Add('SELECT * FROM `название базы`.`название таблицы`');
Alexus
незнакомец
 
Сообщения: 6
Зарегистрирован: 25.12.2009 16:08:14

Re: Подключиться к mysql

Сообщение sign » 25.12.2009 16:45:21

После этого лазарус совсем поломался.
Всё, что он собирает теперь (как данную программу, так и из примеров), запускается, но на экране пусто.
Перезагрузка не помогает.
Переустанавливаю. Может поможет.

Добавлено спустя 2 минуты 6 секунд:
Помогло.
Пошел проверять дальше.

Добавлено спустя 18 минут 53 секунды:
Блин, всё мои кривые руки.
Ваш пример вовсе не при чем.
Сейчас руки подправлю и продолжу тестирование вариантов.

Добавлено спустя 3 минуты 12 секунд:
Спасибо!!!
Всё отлично заработало.

Добавлено спустя 34 секунды:
Прямо как вы написали, так сразу с этого варианта и всё пошло как надо.
sign
энтузиаст
 
Сообщения: 1131
Зарегистрирован: 30.08.2009 09:20:53

Re: Подключиться к mysql

Сообщение racotr » 03.01.2010 17:11:05

У меня тоже возникла проблема с libmysql.dll, равно как и в линухе с libmysql.so.12, но в винде решается просто - скинуть длл-ку в папку лазаря, а в линухе - просто по запарке не то коннекшн использовал (MySQLконнекшн для 5.0 - и проблема исчезает). Так что всё гуд. А порт действительно надо ставить 3306 и юзера как "рут" И будет счастье!
racotr
новенький
 
Сообщения: 14
Зарегистрирован: 19.12.2009 00:32:56
Откуда: Braneapol

Re: Подключиться к mysql

Сообщение eevee » 22.01.2010 10:41:10

1. По вопросам безопасности НИКОГДА не подключайтесь к БД не с серверной машины из под root'а. Создайте другого пользователя, создайте себе базу данных и работайте с ней.
2. Если вы в настройках MySQL слушающий порт не изменяли - то можете в паскале просто указать порт = 0 - это и будет порт по умолчанию 3306
eevee
новенький
 
Сообщения: 63
Зарегистрирован: 29.12.2009 17:52:44
Откуда: Саратов


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Рейтинг@Mail.ru