Esse vídeo/conteúdo faz parte do Curso de C++ Moderno Avançado e nele veremos como conectar ao MySQL com C e C++ no Windows tanto com o Visual Studio como com GCC/g++ MinGW.
Antes de mais nada você precisa ter o MySQL instalado no seu sistema, isso nós mostramos da maneira correta no artigo:
Detalhe não precisa instalar o PHP como tem no artigo, basta o MySQL, e o Apache é opcional!
Após tudo funcionando normalmente, você coseguindo logar no MySQL com o comando mysql -u root -p
, agora precisamos saber que existem duas formas de conexão: pra C e pra C++:
Nesse tutorial eu irei usar, e recomendo, o MySQL Connector C, pois funciona tanto no C quanto no C++.
Visual Studio
Após devidamente instalado e logando normalmente no MySQL pela linha de comando ou com um cliente MySQL
Vamos seguir os passos com as imagens:
#include <iostream>
#include <mysql.h>
int main(){
MYSQL *connect = mysql_init(NULL);
!connect ? std::cerr << "MySQL NÃO foi iniciado.\n"
: std::cout << "MySQL Conectado com sucesso!\n";
mysql_close(connect);
std::cin.get();
}
GCC/g++ MinGW
Nesse procedimento você pode usar qualquer Editor de Códigos/IDE, geralmente eu uso o VSCode ou Vim/Neovim
Ou seja, crie um código similar ao que vimos, mas não precisa do std::cin.get();
:
Se quiser antes crie uma pasta em qualquer lugar do seu PC e entre nessa pasta.
#include <iostream>
#include <mysql.h>
int main(){
MYSQL *connect = mysql_init(NULL);
!connect ? std::cerr << "MySQL NÃO foi iniciado.\n"
: std::cout << "MySQL Conectado com sucesso!\n";
mysql_close(connect);
}
Agora copie a libmysql.dll
(que está no caminho: C:\...libmysql.dll
) para dentro da pasta onde está o arquivo main.cpp
que você criou, salve e saia!
Para compilar e rodar o código, use os comandos abaixo de acordo com o que você usar, exemplos:
Note que eu protegi o caminho com ‘ASPAS SIMPLES’, se estiver usando Windows Terminal, talvez “aspas duplas” pode não funcionar.
g++ .\main.cpp -I'C:\Program Files\MySQL\MySQL Server 8.0\include' -L'C:\Program Files\MySQL\MySQL Server 8.0\lib' -lmysql
.\a.exe
A provável saída será:
MySQL Conectado com sucesso!
.
CMD
Dessa vez eu usei “ASPAS DUPLAS”, agora no CMD talvez as ‘aspas simples’ é que não funcione!
g++ .\main.cpp -I"C:\Program Files\MySQL\MySQL Server 8.0\include" -L"C:\Program Files\MySQL\MySQL Server 8.0\lib" -lmysql
.\a.exe
No Git Bash tudo é diferente, é no estilo Unix e você pode usar o
<Tab>
para autocompletar os nomes dos caminhos:
g++ main.cpp -I /c/Program\ Files/MySQL/MySQL\ Server\ 8.0/include/ -L /c/Program\ Files/MySQL/MySQL\ Server\ 8.0/lib/ -lmysql
./a.exe
Se você preferir usar o MySQL Connector C++ o processo é quase o mesmo, só muda o caminho do include
, lib
e dll
, mas o código não funciona em C, usa namespaces
, basta seguir os mesmo passos para o Visual Studio, mas altere:
Propriedades do Projeto
em: C/C++ > Geral > Diretórios de Inclusão Adicionais
, cole o caminho do Connector:C:\Program Files\MySQL\Connector C++ 8.0\include\jdbc
Vinculador > Geral > Diretórios de Biblioteca Adicionais
, adicione o caminho:C:\Program Files\MySQL\Connector C++ 8.0\lib64i\vs14
Vinculador > Entrada > Dependências Adicionais
, adicione a lib:mysqlcppconn.lib
# Nome da lib: C:\Program Files\MySQL\Connector C++ 8.0\lib64\mysqlcppconn.lib
lib
s abaixo para dentro do seu projeto:C:\Program Files\MySQL\Connector C++ 8.0\lib64 mysqlcppconn8-2-vs14.dll
C:\Program Files\MySQL\Connector C++ 8.0\lib64\mysqlcppconn-9-vs14.dll
Para testar a conexão crie um arquivo de teste:
#include <iostream>
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/prepared_statement.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <mysql_connection.h>
auto main() -> int {
sql::Driver* driver = get_driver_instance();
try {
std::unique_ptr<sql::Connection> con(
driver->connect("HOST", "USUARIO", "SENHA")); // PREENCHA AQUI
if (con != NULL) {
std::cout << "MySQL Conectado com sucesso!\n";
std::cin.get();
}
}
catch (sql::SQLException& e) {
std::cerr << "MySQL NÃO foi iniciado ou Credenciais incorretas.\n";
return 1;
}
}
Se usar o GCC/g++ MinGW copie também as
DLL
e use um comando similar: Exemplo:g++ .\main.cpp -I'C:\Program Files\MySQL\Connector C++ 8.0\include\jdbc' -L'C:\Program Files\MySQL\Connector C++ 8.0\lib64' -lmysqlcppconn
.
Lembrando que se você estiver no Ubuntu com WSL ou VirtualBox você tem de instalar o MySQL usando esse procedimento e depois instalar o MySQL Connector C com esse comando:
sudo apt install libmysqlclient-dev
# Para o conector C++: sudo apt install libmysqlcppconn-dev libmysqlcppconn7v5
E o cabeçalho tem de ser
#include <mysql/mysql.h>
.
Nós realizamos um CRUD, além de outras dicas com C++ utilizando o MySQL Connector C no Curso de C++ Moderno Avançado. Adquira para obter o conteúdo completo:
windows mysql sql cpp linguagemc