數(shù)據(jù)分析系統(tǒng)DIY中要完成的三個(gè)任務(wù)。 一、用VMware裝64位CentOS,數(shù)據(jù)庫(kù)服務(wù)端用CentOS自帶的就好。 二、數(shù)據(jù)采集與預(yù)處理用Dev-C++編程解決。 三、用本地Win7 64上的MATLAB R2012b連接數(shù)據(jù)庫(kù)進(jìn)行挖掘分析。 本文是完成第二個(gè)任務(wù)的過(guò)程。 1.Terminal中輸入
數(shù)據(jù)分析系統(tǒng)DIY中要完成的三個(gè)任務(wù)。
一、用VMware裝64位CentOS,數(shù)據(jù)庫(kù)服務(wù)端用CentOS自帶的就好。
二、數(shù)據(jù)采集與預(yù)處理用Dev-C++編程解決。
三、用本地Win7 64上的MATLAB R2012b連接數(shù)據(jù)庫(kù)進(jìn)行挖掘分析。
本文是完成第二個(gè)任務(wù)的過(guò)程。
1.Terminal中輸入命令行“ifconfig”確認(rèn)CentOS虛擬機(jī)ip:192.168.124.128
2.輸入命令行“netstat -anp|grep mysqld”確認(rèn)mariadb服務(wù)監(jiān)聽(tīng)端口:3306
3.Win7本地安裝使用HeidiSQL測(cè)試能否連接(HediSQL是windows版mariadb自帶的圖形界面管理軟件,安裝mariadb時(shí)可以選擇安裝)
打開(kāi)HeidiSQL后會(huì)話(huà)設(shè)置如圖
點(diǎn)擊“打開(kāi)”后報(bào)連接失敗
4.推測(cè)原因可能是mariadb遠(yuǎn)程訪(fǎng)問(wèn)權(quán)限未開(kāi)
Terminal登錄mariadb”mysql -u root -p“,輸入密碼登錄
mariadb提示符后輸入賦權(quán)語(yǔ)句”GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '登錄密碼' WITH GRANT OPTION;“
隨后刷新”flush privileges;“
回到win7中的HeidiSQL上繼續(xù)測(cè)試,依然失敗。
5.推測(cè)原因可能是centos7自帶的防火墻
命令行”startx“進(jìn)入GUI后設(shè)置Applications-Sundry-Firewall
在配置頁(yè)面默認(rèn)的zone-public選擇Ports頁(yè),單擊Add按鈕,輸入mariadb端口3306后確認(rèn)。效果如圖。
6.回到win7中的HeidiSQL上測(cè)試,連接成功!
7.但是重啟centos后卻發(fā)現(xiàn)HeideSQL又連不上服務(wù)器了。
進(jìn)入Applications-Sundry-Firewall-Ports檢查設(shè)置,發(fā)現(xiàn)之前第5步中3306端口的開(kāi)放規(guī)則居然消失了。
原來(lái)剛才設(shè)置的那個(gè)只是臨時(shí)規(guī)則,重載firewall后該規(guī)則就失效了。
要想設(shè)置永久規(guī)則,Configuration處得先設(shè)為Permanent。如下圖:
再次打開(kāi)Ports頁(yè),單擊Add按鈕,輸入端口號(hào)3306后確認(rèn)。
這回不管重啟幾次centos都可以順利遠(yuǎn)程登錄了。
/*接下來(lái)該DEV C++了,沒(méi)想到這一步居然這么難,用了將近8個(gè)小時(shí)才搞定。*/
8.首先需要下載mysql的devpak,devpaks.org 不知何故被墻,dev c++無(wú)法更新。只好使用goagent通過(guò)瀏覽器訪(fǎng)問(wèn),最終找到了下載地址。
9.下載后通過(guò)dev c++的“工具-Package Manager-Install”安裝“MySQL-6.1.5-1aved.DevPak”
10.安裝成功后,進(jìn)入dev c++的“工具-編譯選項(xiàng)”
a.編譯器頁(yè)中的連接器加入命令“-lmysql”
b.目錄頁(yè)-c包含文件頁(yè)/c++包含文件頁(yè)添加mysql包路徑“dev-cpp安裝目錄\include\MySQL”
11.將“dev-cpp安裝目錄\lib“中的”libmysql.dll“拷入"C:\Windows\SysWOW64",否則編譯時(shí)系統(tǒng)會(huì)報(bào)錯(cuò)。
如果還報(bào)錯(cuò),那就拷到"C:\Windows\system32"
12.編譯例程
#include#include #include int main(int nArguments, char *pszArguments[]) { MYSQL *conn; MYSQL_RES *res; MYSQL_ROW row; char *server = "192.168.124.128";//第一步中確認(rèn)的centos服務(wù)器ip char *user = "root"; char *password = "123456"; /* 此處改成你的密碼 */ char *database = "mysql"; conn = mysql_init(NULL); /* Connect to database */ if (!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)) { fprintf(stderr, "%s\n", mysql_error(conn)); } /* send SQL query */ if (mysql_query(conn, "show tables")) { fprintf(stderr, "%s\n", mysql_error(conn)); } res = mysql_use_result(conn); /* output table name */ printf("MySQL Tables in %s database:\n",database); while ((row = mysql_fetch_row(res)) != NULL) printf("%s \n", row[0]); /* close connection */ mysql_free_result(res); mysql_close(conn); //system("PAUSE"); return 0; }
任務(wù)二,mission accomplished!
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com