mysql作爲輕量級數據庫,並廣泛用於中小型系統中,在過去的兩個月內我做了從oracle到mysql的數據移植,因爲是初次做兩個不同數據源的數據移植,出現了很多小問題(技術大牛可以忽略不看的)。
1,當執行mysql的數據庫的update,insert操作的時候經常會碰到以下錯誤信息:
“You are using safe update mode and you tried to update a table without a WHERE clause that uses a KEY column.”
原因:在safe mode情況下要會有限制的,要執行update,insert語句就要解除限制。
解決辦法:執行SET SQL_SAFE_UPDATES=0; 就能順利執行語句了。
2,當執行表的增刪改查的時候會出現表locked的情況,
解決辦法: (1)查看那些表鎖到了 show OPEN TABLES where In_use > 0;
(2)查看進程號 show processlist;
(3)刪除進程 kill processlist中Id;
備註:如果連接的數據庫是遠程的或者是國外的,需要用到VPN連接的時候,如果出現這種錯誤信息“ Error Code: 1205. Lock wait timeout exceeded; try restarting transaction”,此情況下應該是網絡不穩定不能正常連接遠程數據庫所致。
3,當執行數據export&import的情況時,
可以使用mysql workbench(mysql可視化工具)中的dump工具,操作流程如下:
Server --->Data Export ---->選定所要導出的DB進行export
前提:請確定在Edit---->Preferences--->Administration--->確定Path to mysqldump tool中有mysql自帶的mysqldump.exe,如果不存在請導入mysqldump.exe文件。
如果只是單純導出數據庫數據,可以用mysql workbench中的功能
帶有保存標誌的是導出數據,數據文檔格式一般是CSV格式。
帶有向上箭頭的是導入數據,如果是不同數據庫表數據移植,可以把導出的CSV文件導入點擊圖標導入進來,注意導入的同時會多加入一條數據,這條數據是這張表的所有字段,需要手動刪除避免後續使用,當然可以在導入之前打開CSV文件進行相應刪除。