安裝mysql遇到的一系列坑,mysql8.0 root密碼設置成了中文 同時安裝mysql5.6和mysql8.0 navicate連接兩個版本的mysql

安裝了mysql8.0之後,用navicate連接mysql,結果卻出現瞭如下錯誤,

上網查,答案是:


於是在mysql8.0的commond line client下進入mysql 並複製了這段代碼,本想在命令行中粘貼後在改掉‘你的密碼’換成自己的密碼,然後再回車執行,沒想到的是在命令行中右鍵粘貼後,該段代碼直接被立即執行了,由於是初學mysql,對命令行返回的信息不明其意,未來得及重新執行正確的代碼便關掉了命令行窗口,於是我的mysql root密碼便變成了可悲的他媽的中文密碼。於是再次從commond line clinet下進入Mysql,已經不可能了。即使在EnterPassword:後面即是換成半角輸入中文也一樣無濟於事。

於是在網上搜到:

但是執行到 4時,mysql 命令行返回錯誤(忘記了截圖):

大概的意思是mysql: can't change dir to C:\Program Files\MySQL\MySQL Server 8.0\data ........也就是說在這個路徑下找不到這個data的文件夾,於是我在這個路徑下建立了這個data文件夾,於是這個命令執行成功,並發現在新建的data文件夾下被寫入了兩個文件,但是到第5步時執行mysql -uroot -p 仍然無法進入mysql。於是放棄了這個方法。

最後,想到既然輸入“你的密碼”四個字不能進入數據庫,說明這四個字與root密碼不匹配,但是root密碼明明就是‘你的密碼’這意思字,不匹配那說明肯定是編碼不一致,或者數據庫不識別這四個字,進入數據庫後變成了亂碼。那麼原因就肯定處在編碼規則上,於是想找mysql的my.ini文件,卻驚訝的發現mysql8.0的安裝目錄下根本沒有*.ini文件,上網查發現,這個文件竟然藏在C:\ProgramData\MySQL\MySQL Server 8.0這個文件夾下,ProgramData這個文件夾是系統文件夾,需要在文件夾選項中設置顯示系統文件,於是在my.ini文件中找到 default-character-set= 發現=後面那是空的,於是填寫上utf8.

而後沒有直接用mysql8.0下面的commond line client,而是在cmd的命令行下,進入安裝目錄的bin目錄下輸入:


成功進入mysql;修改密碼問題解決;

再次啓動Navicate for mysql,連接mysql8.0成功。

在解決這個問題的中間,還安裝了一個mysql5.6,導致我的系統上現在有兩個版本的mysql.此版本的mysql安裝方法非常簡單,將安裝包拷貝到硬盤中,在命令行中進入該安裝包路徑下的bin目錄執行 mysql -install;提示命令執行成功後,此時在windwos的服務中會增加一個mysql服務。


其中mysql Router和Mysql80是mysql8.0的服務,而此時在安裝mysql8.0時安裝在系統中的mysql notifier中也會出現兩個服務:


如上圖Mysql80-Running說明此時mysql8.0的服務啓動中,mysql-stopped說明mysql5.6的服務停止。說明我們可以通過切換這兩個服務來切換當前使用的mysql版本。

於是停掉80服務啓動56服務,在Navicate中再次建立連接,成功。其間也出現了一些錯誤,最初出現的事3306端口被佔用,於是在56版本的my.ini中修改了端口號,但是錯誤依舊,而且最終發現在my.ini中修改的端口號並不起作用,哪怕是去掉了前面的#註釋符仍然不行,因爲最後我在Navicata中用3306端口連接56成功時,56的my.ini中仍然是我改的3308。而且已經去掉了#註釋服。期間還打開了windwos防火牆在入站規則中開啓了3308端口,結果反而使得原本連接正常的80版無法連接,於是關閉了windows firewall的服務,80版連接恢復正常。總結原因可能是之前服務切換沒有切換好,導致的56版無法連接。總之最後,兩個版本都有3306端口成功連接Navicata。如圖:



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