初用mysql,正好趕上了 8.0 大版本的更新,據(jù)說效率是5.7版本的兩倍,所以直接開始使用8.0版本。
直接官網(wǎng)下載社區(qū)版本:https://dev.mysql.com/downloads/mysql/
然后找解壓版本安裝教程:https://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html
本來簡(jiǎn)單的問題遇到了幾個(gè)麻煩:
1.執(zhí)行mysqld命令報(bào)缺少vcruntime140.dll
執(zhí)行mysqld -install 安裝服務(wù)時(shí)出了這個(gè)錯(cuò)誤,這個(gè)是缺少vc++2015的運(yùn)行環(huán)境,所以沒有這個(gè)dll,直接網(wǎng)上搜索安裝就可以,安裝完直接過了

2.net start mysql無法啟動(dòng)
這個(gè)錯(cuò)誤報(bào)的不明所以,就說無法啟動(dòng),也沒有詳細(xì)信息,然后看網(wǎng)上資料別人讓刪掉data目錄,然后執(zhí)行mysqld --initialize,發(fā)現(xiàn)我的文件夾就沒有data目錄,所以直接執(zhí)行,執(zhí)行2完成后自動(dòng)創(chuàng)建data目錄及初始文件,然后再啟動(dòng)服務(wù)就可以了
3.root的默認(rèn)密碼沒有
最后,連接數(shù)據(jù)庫(kù),使用 mysql -uroot -p 要求輸入密碼,試了很多次不好使,繼續(xù)查,發(fā)現(xiàn)mysql 5.7以上和之前機(jī)制不一樣了,會(huì)隨機(jī)生成一個(gè)密碼,找了很久終于找到windows版本的辦法。
https://blog.csdn.net/zoe9698/article/details/79116506
4.項(xiàng)目代碼用5.1的版本mysql,更換mysql 8.0以后連接出錯(cuò)了
首先修改了pom里的jar包引用,修改為8.0.11,然后重新編譯打包項(xiàng)目,復(fù)制到服務(wù)器上
然后修改數(shù)據(jù)庫(kù)連接的配置文件
驅(qū)動(dòng)有變化,jdbc.driver=com.mysql.cj.jdbc.Driver,加了一個(gè)cj
然后鏈接字符串多了2個(gè)參數(shù),?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC
useSSL 和?serverTimezone
按要求修改完成后,運(yùn)行成功
至此,服務(wù)器上 java環(huán)境、tomcat、mysql、redis 都安裝完成,并且項(xiàng)目運(yùn)行成功
5.遠(yuǎn)程連接mysql還是出錯(cuò)
回到本地開發(fā)環(huán)境,想遠(yuǎn)程連接一下服務(wù)器上的數(shù)據(jù)庫(kù),配置ip、端口、帳號(hào)密碼后,連接失敗
搜索了一下mysql外網(wǎng)鏈接的問題,發(fā)現(xiàn)root帳號(hào)默認(rèn)只支持localhost連接,需要修改user表的host參數(shù)為%
1.以root登錄到mysql: mysql -r root -p,輸入密碼?
2.use mysql
3.update user set host='%' where user='root';
4.FLUSH RIVILEGES;
再次連接,成功
6.redis遠(yuǎn)程連接也出錯(cuò)了
在本地開發(fā)環(huán)境中,同時(shí)也配置是redis的外網(wǎng)連接,ip、端口號(hào)
但進(jìn)入redis調(diào)用的頁面中,提示錯(cuò)誤,又搜索redis外網(wǎng)連接的問題,也需要修改配置文件
首先注釋調(diào) bind 127.0.0.1 這一行,然后修改?protected-mode no,完成
連接成功
7.root外網(wǎng)訪問
如果沒有"%"這個(gè)host值,就執(zhí)行下面這兩句:
mysql> use mysql;
mysql> update user set host='%' where user='root';
mysql> flush privileges;
8. 客戶端連接caching-sha2-password問題
ALTER?USER?'root'@'localhost'?IDENTIFIED?BY?'password'?PASSWORD?EXPIRE?NEVER;?#修改加密規(guī)則
ALTER?USER?'root'@'localhost'?IDENTIFIED?WITH?mysql_native_password?BY?'password';?#更新一下用戶的密碼
FLUSH?PRIVILEGES;?#刷新權(quán)限