1. 程式人生 > >Mysql5.7解壓版的安裝和解除安裝及常見問題

Mysql5.7解壓版的安裝和解除安裝及常見問題

一、安裝

1、下載

2、解壓

解壓到想安裝的目錄下,我的是D:\mysql-5.7.13-winx64

3、配置my.ini

在D:\mysql-5.7.13-winx64目錄下新建my.ini檔案,輸入以下配置程式碼:

[mysqld]
# 設定mysql的安裝目錄
basedir=D:\mysql-5.7.13-winx64
# 設定mysql資料庫的資料的存放目錄,必須是data
datadir=D:\mysql-5.7.13-winx64\data
# mysql埠
port=3306
# 字符集
character_set_server=utf8
sql_mode
=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

4、安裝

管理員身份執行cmd,執行以下命令:
mysqld -install [服務名]
注:服務名預設為mysql,若無需要,建議不更改

5、初始化

mysqld --initialize-insecure
注:–initialize有兩個-,後邊沒有空格
初始化後,D:\mysql-5.7.13-winx64目錄下回出現data目錄

6、啟動服務

net start mysql

7、登入mysql,修改密碼

預設沒有密碼
這裡寫圖片描述
搞定!

二、解除安裝

1、關閉服務

以管理員身份執行cmd,執行以下命令:
net stop mysql

2、解除安裝

mysqld -remove [服務名]

3、刪除檔案

4、刪除登錄檔資訊

清除登錄檔中的該MySQL服務,有幾個地方:
a、HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL 目錄刪除
b、HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL 目錄刪除
c、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL 目錄刪除
登錄檔中的ControlSet001、ControlSet002不一定是001和002,可能是ControlSet005、006之類,刪除的時候都刪除就可以 。

三、常見問題

1、data檔案錯誤

這裡寫圖片描述

原因:一般初始化之前已存在data檔案就會出現這個錯誤,或者data檔案缺少了某些檔案

解決:先執行mysqld -remove,然後把data檔案刪除,如果刪除不了重啟一下就可以了,之後重新進行安裝就沒問題了。如果想保留之前的data檔案,可以先把data檔案拷貝到其他地方,安裝好之後再將原data檔案中多的檔案拷貝進去就行了,具體參考我的另一篇文章mysql通過拷貝資料檔案方式遷移資料庫

2、密碼錯誤

這裡寫圖片描述

原因1:使用mysqld –initialize方法安裝會生成一個隨機字串組成的密碼,這個密碼在錯誤日誌D:\mysql-5.7.13-winx64\data\green.err(green是使用者名稱)可以找到。

原因2:忘記密碼

解決:如果忘記密碼或找不到隨機密碼,可以通過以下方法跳過許可權修改密碼

以管理員身份執行cmd,執行以下命令:

net stop mysql//關閉服務
mysqld --skip-grant-tables;//設定mysql登入--skip-grant-tables模式

開啟一個新的cmd

mysql//直接登入mysql

update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost';//修改密碼
//特別提醒注意的一點是,新版的mysql資料庫下的user表中已經沒有Password欄位了,而是將加密後的使用者密碼儲存於authentication_string欄位

flush privileges;//重新整理許可權,退出--skip-grant-tables模式,很重要!

重啟電腦,然後mysql就可以連線了

但是此時操作似乎功能不完全,還要在登入狀態下修改一次密碼

alter user 'root'@'localhost' identified by '123456';

還可以這樣:

set password for 'root'@'localhost'=password('123456');

或這樣:

set password=password('123456');