(1)
出現以下
debug
資訊時:
testnewsql.obj : error lnk2001: unresolved external symbol _mysql_close@4
testnewsql.obj : error lnk2001: unresolved external symbol _mysql_select_db@8
testnewsql.obj : error lnk2001: unresolved external symbol _mysql_real_connect@32
testnewsql.obj : error lnk2001: unresolved external symbol _mysql_init@4
解決方法: 在
vc工程中
project
—>setting
—>link
—>object/library modules
中新增:
libmysql.lib
,然後編譯就可以通過了
(2)如果是在其他檔案中引用的,在
tools
—>options
—>directories
—>show directories for :include files
對應的專案中包含這些標頭檔案。
(3)編譯通過後,在執行時彈出對話方塊找不到
libmysql.dll
檔案,在所安裝的
mysql
目錄下的
lib/debug
目錄下可以找到該檔案。將其複製到編譯好的
release/debug
目錄下即可。或是通過「控制面板」—
>
「系統」
—>
「高階」—
>
「環境變數」—
>
「系統變數」—
>
「paht
」中新增
d:/mysql/lib/debug
。注:d:/mysql
為筆者安裝的
mysql
目錄。
(4)如果出現以下編譯問題
error c2146: syntax error : missing ';' before identifier 'fd' 這是
mysql_com.h
**現的問題。如果將這句宣告注釋掉,下面會出現這個編譯問題:
error c2065: 'socket' : undeclared identifier
可以將int my_connect(my_socket s, const struct sockaddr *name, unsigned int namelen,unsigned int timeout);
該函式注釋掉。
則編譯可以通過。
出現的原因分析:在用
vc嚮導生成文件
/檢視時,在第四步中應該選擇
windows sockets
。不然編譯時就會出現上述問題。
最好的解決方式是在
stdafx.h
檔案中新增
#include
,即可解決上述問題。
(5)如果連線資料庫時,出現不能連線的情況時,則應該將所在網路斷開。出現問題的原因同上。
如果是資料庫連線錯誤的話,則因為在
mysql *stdcall mysql_real_connect(mysql *mysql, const char *host,const char *user,const char *passwd,const char *db,unsigned int port,const char *unix_socket,unsigned int clientflag); 對於
passwd
應該設定為
null
。對於user
可以隨意設定。
原因暫時不清楚。
上述情況下只能對使用者使用「
root
」和,就可以連線資料庫了。
a.
如果以其他使用者的身份,則需要新增相應的使用者和密碼。
步驟一:在命令列方式下執行
mysql。
格式:mysql -h
主機位址
-u使用者名稱-p
使用者密碼
例如:連線到本機上的
mysql。
首先在開啟
dos視窗,然後進入目錄
mysqlbin
,再鍵入命令
mysql -uroot -p
,回車後提示你輸密碼,如果剛安裝好
mysql
,超級使用者
root
是沒有密碼的,故直接回車即可進入到
mysql
中了,mysql
的提示符是:
mysql> 2
、例2:連線到遠端主機上的
mysql
。假設遠端主機的
ip為:
110.110.110.110
,使用者名為
root,
密碼為abcd123
。則鍵入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
步驟二:增加新使用者
格式:
grant select on資料庫
.* to使用者名稱
@登入主機
identified by "密碼
"例1
、增加乙個使用者
test1
密碼為abc
,讓他可以在任何主機上登入,並對所有資料庫有查詢、插入、修改、刪除的許可權。首先用以
root
使用者連入
mysql
,然後鍵入以下命令:
grant select,insert,update,delete on *.* to test1@"%" identified by "abc"; 但例
1增加的使用者是十分危險的,你想如某個人知道
test1
的密碼,那麼他就可以在
internet
上的任何一台電腦上登入你的
mysql
資料庫並對你的資料可以為所欲為了,解決辦法見例2。
例2、增加乙個使用者
test2
密碼為abc,
讓他只可以在
localhost
上登入,並可以對資料庫
mydb
進行查詢、插入、修改、刪除的操作(
localhost
指本地主機,即
mysql
資料庫所在的那台主機),這樣使用者即使用知道
test2
的密碼,他也無法從
internet
上直接訪問資料庫,只能通過
mysql
主機上的
web頁來訪問了。
grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc"
VC中使用STL出現的警告
當在使用stl時,vc有時會提出類似以下的警告 compiling.test.cpp c windows desktop test test.cpp 13 warning c4786 std reverse iterator,std allocator const std basic string,...
在VC中使用CCheckListBox
在軟體應用中經常會遇到需要複選功能的列表框。類cchecklistbox實現了windows複選列表框。複選列表框顯示項的乙個列表,例如檔名列表。列表中的每項都有乙個核取方塊,方便使用。但是vc的控 件列表中並新增cchecklistbox,因此在使用cchecklistbox還要進行一些手動設定,...
在VC中使用Debug
選定debug編譯選項 build set active configuration win32 debug 或者在build工具欄上的listbox中選擇debug。debug定義了 debug巨集,而release定義了ndebug巨集。先按f12編譯browse資訊 這樣編譯後可以查到變數定義...