c 連線mysql C 連線MySql

2021-10-17 21:21:25 字數 2540 閱讀 6575

官方文件

機器配置

機器環境:mac 10.14

mysql版本:8.0.4-rc,自行編譯,編譯步驟

mysql 存放路徑:/users/shiyibo/lnmp/mysql

ide: clion

目錄劃分:

| - main.cpp

| - mydb.h

| - mydb.cpp

*** file mydb.h

* created by shiyibo on 2018/12/21.

#ifndef db_mydb_h

#define db_mydb_h

#include

#include "/users/shiyibo/lnmp/mysql/include/mysql.h"

using namespace std;

class mydb else else {

cout << "get result error: " << mysql_error(mysql);

return false;

return true;

#include

#include "mydb.h"

int main() {

// std::cout << "hello, world!" << std::endl;

mydb db;

string host = "127.0.0.1";

string user = "root";

string passwd = "password";

string dbname = "test";

int port = 3307;

cout<

//連線資料庫

bool conn = db.initdb(host, user, passwd, dbname, port);

if (!conn) {

cout<

cout<

//將使用者資訊新增到資料庫

string sql = "insert account values(1, 'fengxin');";

db.exesql(sql);

sql = "insert account values(2, 'axin');";

db.exesql(sql);

//將所有使用者資訊讀出,並輸出。

sql = "select * from account;";

db.exesql(sql);

return 0;

編譯g++ main.cpp mydb.cpp -o main `mysql_config --cflags --libs`

執行image.png

資料表create table `account` (

`id` int(10) unsigned not null auto_increment,

`name` varchar(25) not null default '',

primary key (`id`)

image.png

問題執行時遇到如下報錯

./main

dyld: library not loaded: @rpath/libmysqlclient.21.dylib

referenced from: /users/shiyibo/clionprojects/db/./main

reason: image not found

abort trap: 6

解決方案:

方案1,**

1、關閉csrutil

2、找到mysql安裝路徑,建立軟連線

sudo ln -s /usr/local/mysql/lib/libmysqlclient.21.dylib /usr/lib/libmysqlclient.21.dylib

效果: 原意是,建立乙個從/usr/lib/libmysqlclient.21.dylib到/usr/local/mysql/lib/libmysqlclient.21.dylib的軟連;

環境中編譯的位址為 /users/shiyibo/lnmp/mysql,預設的按照路徑/usr/local/mysql/lib/libmysqlclient.21.dylib中沒有這個目錄;

換成了sudo ln -s /users/shiyibo/lnmp/mysql/lib/libmysqlclient.21.dylib /usr/lib/libmysqlclient21.dylib,重試,不管用;

方案2,**

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib/usr/lib/libmysqlclient.18.dylib

或export dyld_library_path="$dyld_library_path:/usr/local/mysql/lib/"

使用第二種方案,可以成功編譯,當然,路徑也得換為/users/shiyibo/lnmp/mysql/lib

最後好多年不寫c系列,**醜陋,生疏,敬請諒解!

參考

c 動態連線mysql C連線mysql

我是在ubuntu系統下測試的 此系統下,mysql安裝 apt get install mysql server 等了有10多分鐘 然後又裝了mysql client apt get install mysql client 還不夠還需要mysql的開發包 apt get install libm...

qt連線mysql安全麼 Qt連線Mysql的問題

標頭檔案 include include include 工程中需要加入 qt sql 資料庫中的中文顯示為亂碼的解決方法 在main函式中加入 include qtextcodec setcodecfortr qtextcodec codecforname utf 8 qtextcodec set...

Python基礎 Python連線MySQL

什麼是 pymysql?pymysql 是在 python3.x 版本中用於連線 mysql 伺服器的乙個庫,python2中則使用mysqldb。pymysql 遵循 python 資料庫 api v2.0 規範,幷包含了 pure python mysql 客戶端庫。pymysql 安裝 在使用...