0 / 0 / 0
Регистрация: 08.10.2012
Сообщений: 8
1

"Can't connect to MySQL server on 'localhost' (10061) QMYSQL: Unable to connect"

08.10.2012, 21:49. Показов 14350. Ответов 9
Метки нет (Все метки)

Добрый день!
У меня следующая проблема на Windows XP установила QtCreator и MySQL сервер теперь сам вопрос в коде создаётся база данных, которая подключается к серверу mysql осле компиляции программы выдается ошибка: "Can't connect to MySQL server on 'localhost' (10061) QMYSQL: Unable to connect"
Как её устранить? Заранее спасибо!

исходный код:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//main.cpp
 
#include <QtGui/QApplication>
#include "mainwindow.h"
 
#include <QtDebug>
#include <QtGui>
#include <QSqlDatabase>
#include <QSqlQueryModel>
#include <QSqlError>
#include <QTableView>
 
#include <QStringList>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
        QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("new_db");
    db.setUserName("root");
    db.setPassword("1111");
    if (!db.open()) {
        qDebug() << QObject::trUtf8(" Can not open base") << db.lastError().text();
        return -1;
    }
    QSqlQueryModel * model = new QSqlQueryModel(0);
    model->setQuery("SELECT * FROM music");
    model->setHeaderData(0, Qt::Horizontal, QObject::trUtf8("Автор"));
    model->setHeaderData(1, Qt::Horizontal, QObject::trUtf8("Альбом"));
    model->setHeaderData(2, Qt::Horizontal, QObject::trUtf8("Произведение"));
    model->setHeaderData(3, Qt::Horizontal, QObject::trUtf8("Год выхода"));
    QTableView * view = new QTableView(0);
    view->setModel(model);
    view->setWindowTitle(QObject::trUtf8("Музыкальный каталог"));
    view->show();
 
 
    return app.exec();
}

Код
 //файл.pro

QT       += core gui\
            sql

TARGET = base_new
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp

HEADERS  += mainwindow.h\
            SqlDatabase\
            SqlQueryModel\
            SqlError

FORMS    += mainwindow.ui
0

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

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.10.2012, 21:49
Ответы с готовыми решениями:

Can't connect to MySQL server on 'localhost' (10061)
Порт верный, MySQL запущен, ping проходит. в чём проблема?

Ошибка Error Nr. 2003 : Can't connect to MySQL server on 'localhost' (10061)
не могу подключиться к базе данных, что делать?

ошибка Error Nr. 2003 : Can't connect to MySQL server on 'localhost' (10061)
После установки mysql появляется ошибка Error Nr. 2003 : Can't connect to MySQL server on...

Can't connect to MySQL server on 'myserver' (10061)
Добрый день. Не получается зайти удаленно в БД. У пользователя все привилегии, имеет вид:...

9
Псевдослучайный
1941 / 1141 / 97
Регистрация: 13.09.2011
Сообщений: 3,213
08.10.2012, 21:57 2
Сервер-то запущен? И на том ли он порту висит?
1
0 / 0 / 0
Регистрация: 08.10.2012
Сообщений: 8
08.10.2012, 22:28  [ТС] 3
сервер запущен
в msql cmd ввожу пароль сервера root
далее ввожу следующее CREATE DATABASE name;
SHOW CREATE DATABASE name;
далее в командере появляется база.
А что за порты вы имеете введу?
Просто я никогда не имела дела с БД MySQl, это впервые.
0
Псевдослучайный
1941 / 1141 / 97
Регистрация: 13.09.2011
Сообщений: 3,213
08.10.2012, 22:35 4
Порт, который случает бд. У мускула по умолчанию 3306, а у вас код пытается цепляться чёрт знает куда, сделайте перед соединением ещё и
C++ (Qt)
1
db.setPort(3306);
1
Почетный модератор
11236 / 4189 / 420
Регистрация: 12.06.2008
Сообщений: 12,082
08.10.2012, 23:01 5
Сейчас проверил - у меня без указания порта коннектится на 3306... возможно, в данном случае используется другой номер порта. Рекомендую:
- подключаться не к localhost, а к 127.0.0.1
- указать номер порта
- убедиться, что порт указан правильно
- убедиться, что фаервол не блокирует подключение
- имей ввиду, что у никсовых систем (например, у линукса) существуют файловые сокеты. В этом случае утилита mysql может подключиться не к порту, а к файловому сокету. А порт может быть вообще закрыт в настройках.
1
0 / 0 / 0
Регистрация: 08.10.2012
Сообщений: 8
08.10.2012, 23:02  [ТС] 6
Цитата Сообщение от NoMasters Посмотреть сообщение
Порт, который случает бд. У мускула по умолчанию 3306, а у вас код пытается цепляться чёрт знает куда, сделайте перед соединением ещё и
C++ (Qt)
1
db.setPort(3306);
сделала всё ка вы и сказали, но сейчас появились следующие ошибки:
1 ошибка: cannot open output file debug\base_new.exe: Permission denied
файл не найден
2 ошибка: collect2: ld returned 1 exit status
файл не найден
0
Почетный модератор
11236 / 4189 / 420
Регистрация: 12.06.2008
Сообщений: 12,082
08.10.2012, 23:07 7
Цитата Сообщение от alyoniha Посмотреть сообщение
cannot open output file debug\base_new.exe: Permission denied
Закрой программу, прежде чем перекомпилировать её. Просто он жалуется, что exe'шник уже существует и запущен.
1
0 / 0 / 0
Регистрация: 08.10.2012
Сообщений: 8
08.10.2012, 23:15  [ТС] 8
Цитата Сообщение от Humanoid Посмотреть сообщение
Сейчас проверил - у меня без указания порта коннектится на 3306... возможно, в данном случае используется другой номер порта. Рекомендую:
- подключаться не к localhost, а к 127.0.0.1
- указать номер порта
- убедиться, что порт указан правильно
- убедиться, что фаервол не блокирует подключение
- имей ввиду, что у никсовых систем (например, у линукса) существуют файловые сокеты. В этом случае утилита mysql может подключиться не к порту, а к файловому сокету. А порт может быть вообще закрыт в настройках.
при установке mysql указан номер порта номер 3307 и в фаерволе порт открыт и добавлен в исключения
а насчет подключения не к localhost, а к 127.0.0.1 это не прокатывает, я уже пробовала так только для php можно указать
А не может ли блокировать антивируска nod 32 version 5?

Добавлено через 5 минут
Цитата Сообщение от Humanoid Посмотреть сообщение
Закрой программу, прежде чем перекомпилировать её. Просто он жалуется, что exe'шник уже существует и запущен.
появилось пустое окно и выдалось сообщение:

Запускается C:\Documents and Settings\Admin\base_new-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK_________\debug\base_new.exe...
Не удалось получить отладочный вывод.


А таблицы нет?
0
Почетный модератор
11236 / 4189 / 420
Регистрация: 12.06.2008
Сообщений: 12,082
09.10.2012, 08:42 9
Цитата Сообщение от alyoniha Посмотреть сообщение
при установке mysql указан номер порта номер 3307
Ну так и указывай этот порт через
C++ (Qt)
1
db.setPort(3307);
Потому что если ты этого не сделаешь, то он пытается подключаться к 3306

Цитата Сообщение от alyoniha Посмотреть сообщение
А таблицы нет?
Какой таблицы? В MySQL? Тебе надо вначале к нему подключиться. Если ты таблицу не создавала, то её нет.
1
0 / 0 / 0
Регистрация: 08.10.2012
Сообщений: 8
09.10.2012, 23:07  [ТС] 10
Спасибо всем огромное все заработало!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.10.2012, 23:07

Ошибка Can't connect to MySQL server on '127.0.0.1' (10061)
Здравствуйте, установил MySQL Workbench 6, попытался в нем создать новое подключение и вышла вот...

Perl + MySQL = ошибка DBI connect(dbname=mysql; host=localhost',''...) failed: Couldnt connect to
С перлом беда какая-то, третий день мучаюсь и ничего не получается... хелп!!!. use dbi; $dbh =...

Cannot create windows service for mysql. Erro 0. И, Host 'localhost' is not allowed to connect to this mysql server
Здравствуйте! Переустановил Windows 7, Service Pack 1. Устанавливаю MySQL 5.5.60-winx64. Никогда...

Выдаёт Database Error: Unable to connect to the database:Could not connect to MySQL
Здравствуйте! У меня сайт находится на основном домене но я сделал DNS и прикрепил ещё один домен....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.