Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.07.2015, 17:10   #1
ser70
Форумчанин
 
Аватар для ser70
 
Регистрация: 02.10.2009
Сообщений: 255
По умолчанию Подключение пользователей к БД

Здравствуйте!
Задался таким вопросом, как подключение к своей созданной БД других пользователей. Программирую в кути. БД на MySQL. Вот вырезка исходника:
Код:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setDatabaseName("SalesDept");
db.setUserName("root");
db.setHostName("localhost");
db.setPassword("19952012max");
Я так понял нужно указать хост своего сервера, где находится моя БД, наименование БД и пароль, а остальное пользовательские данные. Вид должен быть таким:
Код:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setDatabaseName("SalesDept");
db.setUserName("ИмяПользователя");
db.setHostName("хост сервера");
db.setPassword("19952012max");
или я ошибаюсь. Кто-нибудь подскажите пожалуйста.
"Реальность воображаема, а воображаемое - реально" В. Соло
ser70 вне форума Ответить с цитированием
Старый 11.07.2015, 17:18   #2
Lardes
Форумчанин
 
Аватар для Lardes
 
Регистрация: 19.08.2011
Сообщений: 329
По умолчанию

Цитата:
Я так понял нужно...
Всё верно. И еще не забудьте про
Код:
db.setPort(3306);
Lardes вне форума Ответить с цитированием
Старый 12.07.2015, 10:43   #3
ser70
Форумчанин
 
Аватар для ser70
 
Регистрация: 02.10.2009
Сообщений: 255
По умолчанию

А как узнать хост сервера???
"Реальность воображаема, а воображаемое - реально" В. Соло
ser70 вне форума Ответить с цитированием
Старый 12.07.2015, 11:14   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

На худой конец вместо хоста можно прописывать IP адрес.
У вас вообще свой сервер есть?
waleri вне форума Ответить с цитированием
Старый 12.07.2015, 16:55   #5
ser70
Форумчанин
 
Аватар для ser70
 
Регистрация: 02.10.2009
Сообщений: 255
По умолчанию

Нет, пока только ноутбук, в будущем посмотрим.

Теперь столкнулся с такой проблемой.
Со второго ноутбука запускаю свой программу, которая подключается к моей БД, но если прописать IP в setHostName, то графический интерфейс программы не запускается, а подключение вроде происходит, потому что никаких ошибок не выдает:
Код:
static bool createConnection() {
        qDebug() << "Connection";

        QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
        db.setDatabaseName("SalesDept");
        db.setPort(3306);
        db.setUserName("root");
        db.setHostName("178.129.219.20");
        db.setPassword("19952012max");

        qDebug() << "Connection";

        if(!db.open()) {
            qDebug() << "Cannot open database:" << db.lastError();
            return false;
        }

        qDebug() << "Connection";
        return true;
    }
А если закоментировать строку setHostName, происходит ошибка соединения с БД и интерфейс запускается. В чем проблема???
И вот еще что, сообщения qDebug(), если указать мой IP от ноутбука, выводят только два первых Connection, я так понял он не может открыть базу данных. Почему???

Никто не сталкивался с такой проблемой???
"Реальность воображаема, а воображаемое - реально" В. Соло

Последний раз редактировалось Stilet; 13.07.2015 в 22:07.
ser70 вне форума Ответить с цитированием
Старый 13.07.2015, 22:09   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
графический интерфейс программы не запускается, а подключение вроде происходит
И как же ты это понял? Компы в одной подсети?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.07.2015, 06:29   #7
ser70
Форумчанин
 
Аватар для ser70
 
Регистрация: 02.10.2009
Сообщений: 255
По умолчанию

Нет, я оставил комментарии и посмотрел до кого момента работает программа. Оказалось она не может открыть БД. Дело в том, что qt выдает ошибку: Cannot open database: QSqlError(2003, "QMYSQL: Unable to connect", "Can't connect to MySQL server on '178.129.237.122' (111)")
Уже все перепробовал, фаеровл отключил, binary-address, сначала прировнял к нулю, потом вообще закомментировал. Создал нового пользователя в БД, который может подключаться с любого IP и разрешил все права на БД. Ни как не могу понять в чем дело. У меня Ubuntu 14.04, может на ней свои заморочки???
"Реальность воображаема, а воображаемое - реально" В. Соло
ser70 вне форума Ответить с цитированием
Старый 14.07.2015, 09:20   #8
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

А сервер там есть? А на какой адрес он делает bind? А какой порт он слушает? А на какой порт подключается клиент? Откуда делаете подключение - с того же самого компа или с другого? Если с другого, то может у сервис провайдера включен NAT и комп извне не видно.
111 это кажется connection refused, то бишь хост есть но там никто не слушает.
waleri вне форума Ответить с цитированием
Старый 14.07.2015, 09:22   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
она не может открыть БД
Она не открыть не может, а присоединиться к серверу )
Цитата:
Unable to connect", "Can't connect to MySQL server on '178.129.237.122' (111)
Означате: Не могу всосать сервант.
Локальная сеть между компами есть? Второй комп с первого хоть пингуется?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.07.2015, 11:03   #10
ser70
Форумчанин
 
Аватар для ser70
 
Регистрация: 02.10.2009
Сообщений: 255
По умолчанию

Пингуется без проблем, в чем еще может заключаться ошибка.
"Реальность воображаема, а воображаемое - реально" В. Соло
ser70 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подключение приложения к БД (вопросы аутентификации пользователей в MS SQL Server) Serge_Bliznykov Помощь студентам 3 14.05.2014 09:09
Авторизация пользователей trad Общие вопросы C/C++ 5 11.01.2011 15:09
подключение двух компьютеров к интернет через одно подключение Chudo4258 Помощь студентам 3 30.03.2010 16:07
Авторизация пользователей slips PHP 19 12.01.2010 14:46
Авторизация пользователей Yoga Помощь студентам 9 25.11.2009 19:02