用ini文件遠程連接mysql
最近改寫個東西,又重新寫了寫MySql的連接。為了便於靈活應用,用讀取ini文件的方式讀取mysql連接參數。
順便學習了下ini文件。
www.2cto.com
ini格式。
ini文件由很多節組成。
[cpp]
[NETWORK]//節
host=*.*.*.*//host:鍵、IP:值
user=root
pwd=//不寫即為空
讀取:
[cpp]
GetPrivateProfileString("NETWORK","host","",host.GetBuffer(MAX_PATH),MAX_PATH,strFileName); www.2cto.com
參數列表依次為:節名,鍵名,lpdefault,鍵值,鍵值長度,ini文件路徑
lpDefault : 如果INI文件中沒有前兩個參數指定的字段名或鍵名,則將此值賦給變量.
返回值:鍵值。
寫:
[cpp]
WritePrivateProfileString("NETWORK","host","1.2.3.4",strFileName);
參數列表依次為:節名,鍵名,鍵值,ini文件路徑
返回值:Long,非零表示成功,零表示失敗
文件路徑:
1.INI文件的路徑必須完整,文件名前面的各級目錄必須存在,否則寫入不成功,該函數返回 FALSE 值.
2.文件名的路徑中必須為 \\ ,因為在VC++中, \\ 才表示一個 \ .
3.也可將INI文件放在程序所在目錄,此時 lpFileName 參數為: ".\\student.ini".
配置文件寫好了,接著就是連接:
[cpp]
mysql_real_connect(&mydata,host,user,pwd,database,port,unix_socket,clientflag);
//其中的參數即是讀取文件獲得的。 www.2cto.com
數據的連接晚上帖子一堆,不再重述。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端口。