隨著 Docker 開始 Microservices 這名詞也開始常聽到,所以就想換用 SpringBoot 簡化設定並封裝成單一 Jar,Docker 化步驟就簡單很多,這邊使用 Mybatis 整合
Read on →Vagrant 主要功能在管理虛擬機,但是有時要同時是用資料庫跟NoSQL時,開多台虛擬機又很浪費記憶體,這邊介紹用 Vagrant 讓你在不同地方不同主機都可以建立一樣的環境,並使用 Docker 乘載你要的應用在同一台虛擬機上,爽XD。
Read on →新版本的 vagrant 配置有點不同,所以想用舊的配置檔跑 VM 裡面的 Docker 會失敗
新的要加上
force_host_vm = true
為什麼要加就是自己看一下說明吧,反正就改了
https://www.vagrantup.com/docs/docker/configuration.html#force_host_vm
這幾天 MySQL 出 8 的版本,
沒想到密碼儲存方式變更了, 頓時一堆人慘叫XD
因為 之前 MySQL 預設儲存密碼的方式是 mysql_native_password, 但 8.0 之後 預設的儲存方式為 caching_sha2_password, 說是又快又安全啦, 但讓人措手不及, 一堆 SQL 工具 (Navicat) 可能還來不及更新支援 就...
登入失敗!!
Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so, 2): image not found
方法1 : 就升級上去吧, 變更 JDBC 連結方式
1.首先更新你的 JDBC 驅動 runtime 'mysql:mysql-connector-java:8.0.11'
2.修改你的 driver-class-name , 因為 Loading class `com.mysql.jdbc.Driver'. This is deprecated. , 請你換成新版的 com.mysql.cj.jdbc.Driver
3.JDBC URL 增加參數 allowPublicKeyRetrieval=true
完成, 這樣你的 JDBC 就可以搭配使用上 caching_sha2_password 的機制了
方法2 : 我要最新版但是不要用新的密碼機制
我是用 Docker 啦, 多個參數就可以正常使用了 --default-authentication-plugin=mysql_native_password
docker run --name askask-mysql -e MYSQL_DATABASE=askask -e MYSQL_ROOT_PASSWORD=1qaz2wsx -p 3306:3306 -d mysql --default-authentication-plugin=mysql_native_password
收工