因為要用到mysql數據庫,恰巧電腦里沒有,前期咨詢了學長,被告知安裝mysql稍微有些困難,那么我就想看看自己能否通過自己的努力成功裝上mysql。
話不多說,直接講講我遇到的問題,因為問題太多了,幾乎大部分網上遇到的問題,我都去過了一遍,真的是當時要爆炸了!!現在我怕一下記不全,所以希望趕緊記下來。
其中最重要的,是三個原則:命令按順序輸入、刪除了ini(這個不是原則,是我解決問題的一種方式)、保證注冊表和服務中的目錄位置和文件解壓位置一致。
第一步:安裝mysql。可以去官網下載,直接搜索mysql就好。找到on windows這個選項,會有兩個版本,有installer版本和zip版本,其實之前的installer版本已經安裝好了,因為不熟悉的原因,我覺得用不來,又作死去搞zip版本。這里我重點講zip版本,下載好的zip版本解壓到你需要的地方,比如d:mysql\mysql-8.0.11-winx64(這個位置是你的安裝版本)。
第二步:配置環境變量。這點很重要,zip版本一定需要環境變量。我覺得為了以防萬一,環境變量需要配置兩個地方(不知道對不對,但是我是為了保險起見)
首先找到配置環境變量的地方
接着在環境變量中的PATH中末尾添加:%MYSQL_HOME%\bin
在系統變量中新建:MYSQL_HOME
變量值是你解壓文件的路徑
這兩步的工作都還算簡單,講講常規操作:
接着用win+R鍵 打開命令窗口,在命令窗口里測試是否安裝成功。
首先輸入如下:mysqld -initializemysqld --initialize-insecure
這段命令輸入完畢回車之后需要稍等一會,這段命令的作用是初始化mysql並且創建data文件夾,data文件夾是存放數據的地方,這是一定要有的,手動創建是不行的,粘貼復制也是不行的,因為在C:\ProgramData\MySQL\MySQL Server 8.0\Data根目錄下里面是有data這個文件夾的,這是注冊后存放,並不是你所用的mysql的實際地址,所以需要用上面的命令自動生成data文件夾,並且文件夾內部是有文件的。如下圖所示:
接着再用命令 net start mysql 啟動mysql服務(net stop mysql是關閉服務),如果啟動成功,顯示
則說明已經把mysql 成功啟動了。
接下來輸入命令會跳出Enter password:
直接回車,因為初始是沒有密碼的。
正常情況如下圖所示
這樣一個完整的過程是mysql順利安裝的過程。
接下來我主要講遇到的問題:
(1)mysql服務無法啟動 服務沒有報告任何錯誤
解決方法:先輸入命令mysqld -install 服務成功安裝之后,在mysql的bin目錄下執行mysqld --initialize-insecure (不設置root密碼,建議使用)命令,第一次執行這個命令會等待的時間稍微長了一些,並且控制台沒有任何返回結果。可以看到mysql的根目錄下會多出一個data文件夾,里面一堆文件。此時再重啟服務。
(2)服務名無效
解決方法:先通過命令mysqld -remove 刪除原來的服務,顯示成功刪除,再重新用命令mysqld -install 安裝服務,顯示服務成功安裝。如下圖所示
(3)如果順序是按照上述順序解決了問題,還是提示無法啟動
解決辦法:嘗試把C:\ProgramData\MySQL\MySQL Server 8.0和解壓目錄下的 mysql.ini刪除,因為嘗試過后發現這個ini是對端口,密碼,文件存放位置的一個配置文件,刪除了影響不大,就嘗試刪除掉,結果刪除之后,服務啟動成功了。(這點不知道為什么......)
(4)服務啟動之后立馬停止 這一點還沒有弄明白為什么,但是通過我的實際操作,我覺得問題出在了命令的順序上,一定要先在正確的目錄下安裝mysqld,之后再初始化mysql,緊接着最后啟動服務。
解決辦法:用 WIN+R 打開命令控制,輸入regedit,查看注冊表信息,找到
查看ImagePath中的數據是否和你解壓的目錄是同一數據
同時還要檢查服務里的數據是否是和解壓目錄統一
打開控制面板->更改查看方式,換成小圖標->找到管理工具->找到服務 在服務里查看mysql的屬性,查看目錄情況,如果不一致:則打開命令控制台,執行mysqld -remove命令。(這里出錯的原因是因為在執行mysqld -install時沒有在根目錄下執行,在安裝服務時候,一定要在根目錄下執行才可以)如下圖所示:
這樣就可以保持一致了。
按照上面四個問題的解決辦法,我重新遵循了 命令輸入要按順序,刪除了ini文件,保證目錄一致這三個原則,解決了錯誤代碼為2003 1045的問題,其主要原因還是沒有遵循那三個原則導致的,所以在配置環境的時候一定要小心。
這是我配置mysql環境時候遇到的問題,自己記錄下來的目的是希望以后遇到了,實在不想百度花費太多時間,其次也是有一些問題沒有弄明白,在文中標注了,希望能夠有人能看到幫我解決或者我自己再琢磨透徹。