最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

在*nix類系統(tǒng)使用C/C++連接mysql8的諸多問(wèn)題及解決方案【本文在macOS12下實(shí)現(xiàn)】

2022-12-09 14:54 作者:SynTimes  | 我要投稿

請(qǐng)各位巨佬手下留情,嘴下留情,弱菜備份一個(gè)解決方案。

首先需要安裝mysql8,這里不再贅述。

默認(rèn)安裝目錄是/usr/local/mysql

之后需要

sudo cp /usr/local/mysql/lib/libssl.1.1.dylib /usr/local/lib

sudo cp /usr/local/mysql/lib/libcrypto.1.1.dylib /usr/local/lib

libssl.1.1.dyliblibcrypto.1.1.dylib 是動(dòng)態(tài)鏈接庫(kù),不僅這里要寫上,在運(yùn)行代碼之前,需要將這兩個(gè)動(dòng)態(tài)庫(kù)拷貝到 /usr/local/lib

在代碼執(zhí)行的時(shí)候會(huì)去調(diào)用這兩個(gè)庫(kù),如果沒(méi)有就會(huì)報(bào)錯(cuò):【下列只是羅列了一個(gè)Clion的情況,由于筆者在寫這篇文章的時(shí)候terminal已關(guān)閉,無(wú)法找到之前的日志文件和錯(cuò)誤信息,所以網(wǎng)上找了一個(gè)】

dyld[72956]: Library not loaded: libssl.1.1.dylib
? Referenced from: /Users/您的用戶名/Program/Clion-workplace/test/cmake-build-debug/cty
? Reason: tried: 'libssl.1.1.dylib' (no such file), '/usr/local/lib/libssl.1.1.dylib' (no such file), '/usr/lib/libssl.1.1.dylib' (no such file), '/Users/chentianyi/Program/Clion-workplace/test/cmake-build-debug/libssl.1.1.dylib' (no such file), '/usr/local/lib/libssl.1.1.dylib' (no such file), '/usr/lib/libssl.1.1.dylib' (no such file)
zsh: abort????? ./test

由于libmysqlclient.21.dylib文件沒(méi)有導(dǎo)入這里可能還會(huì)報(bào)個(gè)錯(cuò):@rpath/libmysqlclient.21.dylib 后面略

建議使用sudo ln -s /usr/local/mysql/lib/libmysqlclient.21.dylib /usr/local/lib/libmysqlclient.21.dylib

mac升級(jí)之后開(kāi)啟了SIP(System Integrity Protection),增加了rootless機(jī)制,導(dǎo)致即使在root權(quán)限下依然無(wú)法修改文件,在必要時(shí)候?yàn)榱四軌蛐薷南旅娴奈募?,我們只能關(guān)閉該保護(hù)機(jī)制。但上面的方法可以無(wú)視SIP,【如果不用上面的方法而用:sudo ln -s /usr/local/mysql/lib/libmysqlclient.21.dylib /usr/lib/libmysqlclient.21.dylib,則往往會(huì)提示無(wú)法創(chuàng)建/usr/lib/libmysqlclient.21.dylib的軟連接】。由于我不想關(guān)SIP,所以嘗試了通過(guò)創(chuàng)建/usr/local/lib/libmysqlclient.21.dylib軟連接來(lái)解決這個(gè)問(wèn)題

之后提供一個(gè)測(cè)試的例子,您必須對(duì)例子中的漢字部分進(jìn)行替換,用漢字是為了方便您定位(test.c)【C++ 同理】

#include <stdio.h>
#include <mysql.h>

const char host[] = "您的localhost";
const char user[] = 您的mysql用戶名";
const char pwd[] = "您的mysql密碼";
const char database[] = "要連接的數(shù)據(jù)庫(kù)名";
unsigned int port = mysql端口號(hào);

int main() {
??? MYSQL myCont;
??? mysql_init(&myCont);

??? if (mysql_real_connect(&myCont, host, user, pwd, database, port, nullptr, 0)) {
??????? printf("Hello mysql\n");
??? }

??? else {
??????? printf("connect failed!\n");

????????//如果要輸出連接錯(cuò)誤的信息,則將上述語(yǔ)句修改printf("ERROR Reson:%s",mysql_error(&myCont));

??? }
??? mysql_close(&myCont);
??? return 0;
}

編譯運(yùn)行:gcc -I /usr/local/mysql/include/ -L /usr/local/mysql/lib/ test.c -o test -lmysqlclient

然后./test

相信有一定基礎(chǔ)的人應(yīng)該能看明白例子的輸出,這里不再贅述。


在*nix類系統(tǒng)使用C/C++連接mysql8的諸多問(wèn)題及解決方案【本文在macOS12下實(shí)現(xiàn)】的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
镇坪县| 姜堰市| 牡丹江市| 邯郸县| 绥阳县| 昌图县| 巴彦淖尔市| 通化县| 乡城县| 阆中市| 丹东市| 醴陵市| 互助| 舟曲县| 北宁市| 海淀区| 清原| 邢台市| 进贤县| 垫江县| 丘北县| 西畴县| 长寿区| 四会市| 酒泉市| 洛阳市| 化州市| 辽宁省| 怀集县| 五华县| 永平县| 来宾市| 永善县| 静海县| 文成县| 巩留县| 商都县| 砀山县| 岳普湖县| 鄂托克旗| 保德县|