Nesse artigo veremos como conectar ao MySQL com C e C++ no Ubuntu e também um procedimento de instalação que serve para qualquer distro GNU /Linux .
Instalação
Antes de mais nada você precisa ter o MySQL/MariaDB instalado n seu sistema, isso nós mostramos na maneira correta no artigo:
Demais conceitos necessários você pode encontrar no artigo:
Que descreve as diferenças entre: MySQL Connector C e o MySQL Connector C++ !
MySQL Connector C++ MÉTODO 1 | Ubuntu
Para instalar o MySQL Connector C no Ubuntu você pode usar o gerenciador de pacotes APT:
sudo apt install libmysqlcppconn-dev libmysqlcppconn7v5
Para testar crie um código 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" , "USER" , "SENHA" )); // PREENCHA AQUI
if ( con != NULL ) {
std :: cout << "MySQL Conectado com sucesso! \n " ;
}
} catch ( sql :: SQLException & e ) {
std :: cerr << "MySQL NÃO foi iniciado ou Credenciais incorretas. \n " ;
return 1 ;
}
}
Compile e rode:
g++ main.cc -lmysqlcppconn
./a.out
MySQL Connector C++ MÉTODO 2 | Qualquer Distro
Você também pode instalar manualmente caso estiver em outra distro, ou em uma versão que está com problema ao usar o APT.
01. Remova os pacotes do seu sistema se houver, e faça a limpeza posteriormente:
sudo apt remove --purge libmysqlcppconn-dev libmysqlcppconn7v5 -y
sudo apt autoremove
Escolha: Select Operating System: Linux - Generic
E no select de baixo: Select OS Version: All
Clique no arquivo: Archive : (mysql-connector-c++-X.X.X-linux-glibcX.XX-x86-64bit.tar.gz)
Depois clique em: No thanks, just start my download. e o Download será realizado!
03. Após o download, descompacte o arquivo baixado:
tar zxvf mysql-connector-c++-* .tar.gz
cd mysql-*
sudo mv include/jdbc/* /usr/include/
sudo mv lib64/* /usr/lib/x86_64-linux-gnu/
Se quiser escolha um caminho diferente: sudo mv lib64/* /usr/lib64/
.
05. Agora permita a GNU GlibC entender sua instalação, para isso rode o comando abaixo:
sudo ldconfig
Se escolheu um caminho diferente: echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/' >> ~/.bashrc && source ~/.bashrc
.
06. Para testar utilize o mesmo código 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" , "USER" , "SENHA" )); // PREENCHA AQUI
if ( con != NULL ) {
std :: cout << "MySQL Conectado com sucesso! \n " ;
}
} catch ( sql :: SQLException & e ) {
std :: cerr << "MySQL NÃO foi iniciado ou Credenciais incorretas. \n " ;
return 1 ;
}
}
07. Mas para compilar e rodar, use o seguinte comando:
g++ main.cpp -lmysqlcppconn
# Ou: g++ main.cpp /usr/lib64/libmysqlcppconn.so.9
./a.out
Caso não funcione, tente compilar com a flag: -pthread
.
Se escolheu caminho alternativo(/usr/lib64
) e não quiser adicionar conteúdo ao ~/.bashrc
você também pode criar um link simbólico para usar a flag
:
sudo ln -s /usr/lib64/libmysqlcppconn.so.9 /usr/lib/x86_64-linux-gnu/libmysqlcppconn.so.9
E também se quiser que apareça a descrição para o pkg-config --list-all
, basta criar esse arquivo:
sudo vim /usr/lib/pkgconfig/mysqlcppconn.pc
E adicione esse conteúdo dentro:
prefix = /usr
exec_prefix = ${ prefix }
libdir = /usr/lib64
includedir = ${ prefix } /include
Name: mysqlcppconn
Description: MySQL Connector/C++ is a MySQL database connector for C++.
URL: https://github.com/mysql/mysql-connector-cpp
Version: 8.1.0
Libs: -L " ${ libdir } " -lpthread
Cflags: -I " ${ includedir } " -I /usr/local/include
#Requires.private: @GLFW_PKG_DEPS@
#Cflags: -I"${includedir}" -I/usr/local/include
Veja o conteúdo: pkg-config --list-all | grep mysqlcppconn
Você também pode compilar do zero, basta clonar o repositório: https://github.com/mysql/mysql-connector-cpp e seguir o procedimento listado aqui .
Se quiser desinstalar TUDO:
sudo unlink /usr/lib/x86_64-linux-gnu/libmysqlcppconn.so.9 2>/dev/null
sed -i '/LD_LIBRARY_PATH/d' ~/.bashrc
cd /usr/include/
sudo rm -rf cppconn/ mysql_*
cd /usr/lib/x86_64-linux-gnu/ # Ou se escolheu diretório alternativo: cd /usr/lib64/
sudo rm -rf libmysqlcppconn8.so libmysqlcppconn8.so.2 libmysqlcppconn8.so.2.8.1.0 \
libmysqlcppconn.so libmysqlcppconn.so.9 libmysqlcppconn.so.9.8.1.0 plugin private
sudo rm /usr/lib/pkgconfig/mysqlcppconn.pc
MySQL Connector C Ubuntu
Para instalar o MySQL Connector C no Ubuntu você pode usar o gerenciador de pacotes APT:
sudo apt install libmysqlclient-dev
Para testar a conexão crie um arquivo de teste:
main.cpp
#include <iostream>
#include <mysql/mysql.h>
auto main () -> int {
MYSQL * connect = mysql_init ( NULL );
! connect ? std :: cerr << "MySQL NÃO foi iniciado. \n "
: std :: cout << "MySQL Conectado com sucesso! \n " ;
mysql_close ( connect );
}
Compile e rode:
g++ main.cpp -lmysqlclient
./a.out
Alternativamente você pode instalar diretamente:
wget -q https://terminalroot.com.br/downs/libmysqlclient-dev-8.0.34-0ubuntu0.23.04.1-amd64.tar.gz
tar zxvf libmysqlclient-dev-8.0.34-0ubuntu0.23.04.1-amd64.tar.gz
cd libmysqlclient-dev-8.0.34-0ubuntu0.23.04.1-amd64
sudo mv include/mysql/ /usr/include/
sudo mv lib/libmysqlclient.* /usr/lib/x86_64-linux-gnu/
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!
Links úteis
https://dev.mysql.com/doc/connector-cpp/1.1/en/connector-cpp-examples-connecting.html
https://dev.mysql.com/doc/connector-cpp/8.1/en/connector-cpp-apps-general-considerations.html
https://dev.mysql.com/doc/connector-cpp/8.1/en/connector-cpp-installation-binary.html
https://dev.mysql.com/downloads/c-api/
https://dev.mysql.com/downloads/connector/cpp/
https://dev.mysql.com/downloads/installer/
https://downloads.mysql.com/archives/c-c/
mysql
sql
cpp
linguagemc
Marcos Oliveira
Desenvolvedor de software