小弟初來乍到,分享一些工作學習中遇到的問題和解決方式,如有不准確或是有錯誤的地方,希望不吝賜教,謝過了。 --Dogtwo 處理某問題時遇到的MySQL問題及解決方案. 1.隨著Project數量越來越多,DB的備份文件大小也越來越大,難以導入。 之前導入備份DB時採用的方法有兩種: 1.將導出的. ...
小弟初來乍到,分享一些工作學習中遇到的問題和解決方式,如有不准確或是有錯誤的地方,希望不吝賜教,謝過了。 --Dogtwo
處理某問題時遇到的MySQL問題及解決方案.
1.隨著Project數量越來越多,DB的備份文件大小也越來越大,難以導入。
之前導入備份DB時採用的方法有兩種:
1.將導出的.sql文件打開,複製內容執行。
2.WorkBench import.
問題:.sql文件大小過大,以上方法均不能正確執行,程式未響應。
解決方法: source命令。
涉及到的命令如下:
mysql -u root -p
輸入密碼
source path/xxx.sql
2.Prod DB備份成功導入本地,又出現了新的問題,客戶端連接失敗。
客戶端連接caching-sha2-password問題。
MySQL Error: Authentication plugin 'caching_sha2_password' not supported by any of avaliable plugins
產生原因:
Server環境DB版本為MySQL 5.7.17
本地環境為 MySQL 8
由於SHA1演算法被破解,所以MySQL8之後都升級了成了sha2演算法。
MySQL8預設的認證插件是cacheing_sha2_password插件,原來的版本使用的是mysql_native_password插件,這使得原來的MySQL連接客戶端出現認證失敗的問題。
所以有兩種方式可以解決問題:
將服務端的加密方式修改為sha1
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密規則 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用戶的密碼 FLUSH PRIVILEGES; #刷新許可權 ALTER user 'root'@'localhost' identified by '123qwe'; #再重置下密碼
但筆者使用這種方法未生效,原因待查。另外,關於當前版本MySQL所使用的預設插件可以在MySQL Server自帶庫MySQL表user中查看(Plugin欄位),這個庫在DB查看工具中(WorkBench等)預設不顯示,建議使用命令行手動查看。
強客戶端的加密方式修改為sha2 (未親測)
3.將MySQL安裝為Service的方法
將文件複製至C:\Program Files\MySQL下,在bin文件中使用命令:
Mysqld --install.
4.Store Procedures DEFINER=`user`@`host`
Store Procedures處理固定查詢很方便,但是在不同環境間切換也會有一些問題。
在生成SP時,若沒有定義DEFINER,則系統會預設加上DEFINER=`user`@`host`,此處的user及host為當前Connect中的user及host,當不同環境中user或host不同時會產生error,此時更改SP中DEFINER定義或更換Connect連接對象即可解決。
5.ErrorCode 1055
這個Error有時會遇到,這裡講的很好,不再贅述了.
未完待續..
另 SHA1演算法是由王小雲教授(1966年8月出生於山東諸城,密碼學家,中國科學院院士,清華大學高等研究院楊振寧講座教授,清華大學密碼理論與技術研究中心主任)及其團隊攻破,這個團隊還曾提出了關於MD5的破解的改進。有興趣可以瞭解一下.