Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа для смены пароля в MySQL, Смена пароля в MySQL. Как реализовать? 
V
    Опции темы
Zerstroer
Дата 30.9.2009, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



Здравствуйте уважаемые!
Пишу на C++ под Linux (использую стандартную библиотеку libmysqlclient) консольное приложение, которое должно менять пароль для пользователя БД MySQL.
Делаю все функцией вот так:
Код

void connectDB(string p){    //передаю пароль
  //  string que = "UPDATE user SET password = PASSWORD('"+ p + "') where user = 'MyDBUser'; FLUSH PRIVILEGES;"; //один из вариантов запроса
    string que = "SET PASSWORD FOR MyDBUser@localhost = PASSWORD('" + p +"');";
    char q2[que.size()];
    for (int i=0; i< que.size(); i++){
        q2[i] = que.at(i);
        cout << q2[i];
    }
    cout << endl;
  
    MYSQL mysql;
      if(!mysql_init(&mysql))
         cout << "can't init DB" << endl;
    if (!mysql_real_connect(&mysql, "localhost", "root", "123", "mysql", 0, NULL, 0))
         cout << "can't connect DB" << endl;
   if (!mysql_query(&mysql, q2))
         cout << "query failed" << endl;
    else
        cout << "query executed!" << endl;
    
    mysql_close(&mysql);
    mysql_library_end();
}


Вроде бы по логике вещей все правильно, но пароль для пользователя MyDBUser не меняется. Подскажите, в может быть дело?

Это сообщение отредактировал(а) Zerstroer - 30.9.2009, 13:25


--------------------
In silico
PM MAIL ICQ   Вверх
SenkraD
Дата 30.9.2009, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 3
Всего: 23



По логам тоже всё ОК?


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Zerstroer
Дата 30.9.2009, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



По логам все чисто. 
Причем запросы, если их запускать под root пользователем базы, выполняются корректно и пароль меняют. Не могу понять, почему не получается из скомпиленой программы это сделать.

Это сообщение отредактировал(а) Zerstroer - 30.9.2009, 13:58


--------------------
In silico
PM MAIL ICQ   Вверх
Zerstroer
Дата 30.9.2009, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



Приношу свои извинения, за скоропалительно открытую и скоропостижно решенную тему!
Вопрос закрыт нашел свою ошибку.
Вместо mysql_query мне следовало использовать mysql_real_query.
Вопрос исчерпан всем (SenkraD) спасибо!

Добавлено через 1 минуту и 28 секунд
 smile 

Это сообщение отредактировал(а) Zerstroer - 30.9.2009, 14:13


--------------------
In silico
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C++: Базы данных"
chipset

Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах.

Благодарим за понимание.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0391 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.