【卸載MySQL8.0重裝MySQL5.7】安裝過程百般花式錯誤+手動刪除殘餘服務+修改數據庫默認密碼

我遇到一個超級棘手的難題,由於一箇舊web項目需要用到c3p0的數據庫操作庫,由於本人jdk是1.7版本,mySQL是8.0版本,同時mySQL8.0支持5.x的驅動,在一般的MVC操作並無問題。但是c3p0卻提示:
在這裏插入圖片描述
經思考,爲保證jar包一致,所有版本的都和舊項目相同,但是mySQL版本可能存在差別,本着用新不用舊的心態我用了8.0的mySQL,但是之前就發現,因爲jdk是1.7,我沒辦法在8.0版本上用上8.0的mySQl驅動,只能用舊的5.x,問題不大,直至現在c3p0無法在8.0的數據庫上用舊的驅動,一直提示變量找不到。原因是新版本MYSQL換了變量名字,但是按照上述操作依舊無解。只能更換數據庫版本。

同一個關於版本問題的坑踩了兩遍,爲求高效我要總結目前學習階段所需要使用的原則:
jdk1.7+mySQL5.7最後一個版本+Navicat

卸載MySQL8.0重裝MySQL5.7
那麼問題來了,怎麼安裝mySQL5.7最後一個版本?
官網花裏胡哨的英文中挑出一個歷史版本的鏈接:
https://downloads.mysql.com/archives/community/

5.7最後一個版本不像最新的8.0沒有msi安裝工具,只是一個壓縮文件。
基本操作:https://www.jianshu.com/p/a41d45890ab2
值得注意的有,配置環境變量、data和Uploads目錄以及手動添加my.ini文件。
在這裏插入圖片描述

以下是根目錄下my.ini文件配置信息:

[mysqld]
port=3306
character_set_server=utf8
basedir=//注意這裏是zip解壓後目錄名 如E:\mysql5.7.23
datadir=//注意這裏是zip解壓後data文件夾地址 如E:\mysql5.7.23\data
server-id=1
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
lower_case_table_names=1
innodb_file_per_table = 1
log_timestamps=SYSTEM

log-error   = error.log
slow_query_log = 1
slow_query_log_file = slow.log
long_query_time = 5
log-bin = binlog
binlog_format = row
expire_logs_days = 15
log_bin_trust_function_creators = 1
secure-file-priv=//注意這裏是zip解壓後Uploads文件夾地址 E:\mysql5.7.23\Uploads

[client]   
default-character-set=utf8

cmd進入解壓後的文件夾的bin目錄,如D:\mysql-5.7.29-winx64\bin,分四步進行輸入

mysqld --initialize-insecure //1.初始化數據庫
mysqld –install //2.註冊服務
net start MySQL57 //3.啓動MySQL服務
mysql -u root -p //4.第一次成功安裝後默認無密碼登錄

一定要注意,my.ini文件內容的路徑是否準確,不然會報錯:
在這裏插入圖片描述
好巧不巧,第二步意外還是出現了,cmd提示:

server has exist

並沒有出現success字樣,回到本地服務查看,卸載MySQL8.0後確實殘留一個MySQL服務。我明明利用官方的安裝工具卸載的,怎麼會有殘留?是我忘記點選卸載服務了麼?在這裏插入圖片描述
接下來就是刪除MySQL這個服務的步驟:
1.定位這個服務的文件夾,刪光文件
2.搜索regedit註冊表編輯,刪掉路徑1:\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\eventlog\Application\MySQL
目錄下所有註冊表。
3.以管理員身份運行(不然提示 SC OpenService 失敗5:拒絕訪問),進入cmd輸入:
sc delete mysql
4.重啓計算機,已經看不到這個MySQL服務了

好了回到上一級步驟,重新進行第二次的註冊服務,已經沒有問題,新的MySQL服務再次生成,這正是我想要的。
千萬不要忘了3.啓動MySQL服務,一定要在服務中開啓新的MySQL服務,不然提示:
在這裏插入圖片描述
至此,成功進入數據庫!
在這裏插入圖片描述

select host,user,plugin,authentication_string from mysql.user; //查詢數據庫默認用戶
alter user 'root'@'localhost' identified by 'root' //默認空密碼,修改密碼,不然Navicat不接受空密碼連接

至此,和Navicat連接前期準備成功!
在這裏插入圖片描述
在這裏插入圖片描述
寧願接受百次看不懂的智商打擊,也不想各種工具的版本問題趟坑一兩回!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章