
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 StudioApó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++ MinGWNesse 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.exeA provável saída será:
MySQL Conectado com sucesso!.
CMDDessa 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.exeNo 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.exeSe 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\jdbcVinculador > Geral > Diretórios de Biblioteca Adicionais, adicione o caminho:C:\Program Files\MySQL\Connector C++ 8.0\lib64i\vs14Vinculador > Entrada > Dependências Adicionais, adicione a lib:mysqlcppconn.lib
# Nome da lib: C:\Program Files\MySQL\Connector C++ 8.0\lib64\mysqlcppconn.liblibs 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.dllPara 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
DLLe 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 libmysqlcppconn7v5E 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