最近改寫個東西,又重新寫了寫MySql的串連。為了便於靈活應用,用讀取ini檔案的方式讀取mysql串連參數。
順便學習了下ini檔案。
ini格式。
ini檔案由很多節組成。
[NETWORK]//節host=*.*.*.*//host:鍵、IP:值user=rootpwd=//不寫即為空白
讀取:
GetPrivateProfileString("NETWORK","host","",host.GetBuffer(MAX_PATH),MAX_PATH,strFileName);
參數列表依次為:節名,鍵名,lpdefault,索引值,索引值長度,ini檔案路徑
lpDefault : 如果INI檔案中沒有前兩個參數指定的欄位名或鍵名,則將此值賦給變數.
傳回值:索引值。
寫:
WritePrivateProfileString("NETWORK","host","1.2.3.4",strFileName);
參數列表依次為:節名,鍵名,索引值,ini檔案路徑
傳回值:Long,非零表示成功,零表示失敗
檔案路徑:
1.INI檔案的路徑必須完整,檔案名稱前面的各級目錄必須存在,否則寫入不成功,該函數返回 FALSE 值.
2.檔案名稱的路徑中必須為 \\ ,因為在VC++中, \\ 才表示一個 \ .
3.也可將INI檔案放在程式所在目錄,此時 lpFileName 參數為: ".\\student.ini".
設定檔寫好了,接著就是串連:
mysql_real_connect(&mydata,host,user,pwd,database,port,unix_socket,clientflag);
//其中的參數即是讀取檔案獲得的。
資料的串連晚上文章一堆,不再重述。mysql的串連基類已寫好。稍後上傳到資源。
想要遠端連線,還有一個很重要的步驟:
設定伺服器可以遠程:
1、在控制台執行
mysql -u root -p mysql,系統提示輸入資料庫root使用者的密碼,輸入完成後即進入mysql控制台,這個命令的第一個mysql是執行命令,第二個mysql是系統資料名稱,不一樣的。
2、在mysql控制台執行 GRANT ALL PRIVILEGES ON *.* TO ‘root'@'%' IDENTIFIED BY ‘MyPassword' WITH GRANT OPTION;
3、 mysql>
FLUSH PRIVILEGES; //使修改立即生效
可能會出現10060無法串連的錯誤,這時要查看下是否防火牆禁用了3306連接埠。