今年瘋狂迷上了開源,只要看到好的開源項目,就會不顧一切一股腦扎進去研究,五一期間發現一個很好的關於衆籌的開源項目,但不巧,這個項目居然是 PHP 寫的,沒學過 PHP,天然對這個開源項目毫無頭緒了,但我居然爲了這個項目,毅然決定入坑 PHP,因而就出事了...php
說時遲那時快, 2 小時入門 PHP,2 小時入門 ThinkPHP,鑑於我一直在研究 Java 的緣由,因此不費吹灰之力就順利入坑。經過了解,PHP 開發必備環境是 PHP、Apache、MySQL以及一個好用的 IDE ,IDE 仍是很好找的,我選擇了 JetBrains 的 PhpStorm,而其餘環境就是集所有功能於一身的 WampServer 了,安裝完準備建數據庫建表,打開 Navicat ,錯誤開始...mysql
MySQL 報錯:1045- Access denied for user 'root'@'localhost'(using password YES)
複製代碼
以下圖所示:sql
安裝了 WampServer 這個集 PHP 開發環境於一身的神器後,裏面的 MySQL 網頁管理軟件 phpMyAdmin 使得數據庫的 root 用戶權限發生改變,也能夠說是因爲二者的密碼不一致致使密碼錯亂有了這個錯誤(我本身理解),由於 phpMyAdmin 安裝完成後的默認密碼是空的。數據庫
直接充值密碼便可解決數據這個報錯問題。瀏覽器
首先,中止掉數據的運行,這個我相信你們均可以作到了,能夠直接從管理服務程序中中止,也能夠直接在 cmd 命令窗口輸入命令 net stop mysql 來中止。緩存
而後進入 MySQL 的安裝路徑,找到並打開 my.ini 文件,找到 [mysqld] 字段,在這個字段下面增長下面這個語句:bash
skip_grant_tables
複製代碼
緊接着重啓數據庫,這個我相信你們也能夠作到了,能夠直接在管理服務程序中開啓,也能夠直接在 cmd 命令窗口中輸入命令 net start mysql 來開啓,進而在命令窗口執行一下命令,重置密碼:微信
update user set password=password("root") where user="root";
複製代碼
固然,我是直接將密碼重置爲 root,反正這個密碼你們自定義就好,不過要記住密碼。ui
最後就是再次中止數據庫的運行,返回前面提到的 my.ini 文件去掉 skip_grant_tables 字段後保存,再次重啓數據庫就能夠成功解決這個 MySQL 的報錯了。spa
我在第四部完美的解決了命令窗口啓動進入數據的這種報錯,而後當我從新進入 Navicat 打開本地創建的鏈接的時候,繼續報一樣的錯誤,也就是說錯誤並無解決,很納悶,爲啥命令行能夠順利操做數據庫不報錯,進入 Navicat 客戶端就報錯呢?
折騰半天,發如今 root 權限錯亂而重置密碼以後,在 Navicat 中已經創建的鏈接是不可逆的。
折騰半天,發現解決辦法也很簡單,要麼刪除鏈接後從新建一個鏈接,固然,刪除鏈接後並不會已經創建的數據庫,要麼重裝 Navicat ,至於選哪種,自行選擇,我都試過,均可以成功解決 Navicat 報這個錯誤。
當本地的錯誤完美解決以後,我打開 phpMyAdmin 網頁,居然報了一個與前面的錯誤很類似卻又有異的錯誤,錯誤以下:
1045- Access denied for user 'root'@'localhost'(using password NO)
複製代碼
當我把本地的 phpMyAdmin 配置文件中的密碼也設置爲 MySQL 數據庫的密碼後,打開後仍是繼續報一樣的錯誤,不斷打開不斷報錯,又折騰半天,最後在 StackOverFlow 上找到了解決辦法:直接清除瀏覽器的 Cookie 緩存就能夠解決這個問題。也就是說,我本地的配置是沒有任何錯誤的,而打開網頁繼續報錯的緣由是以前報錯時瀏覽器已經把 phpMyAdmin 的登陸密碼緩存到了 Cookie之中。
好了,全部問題完美解決,特此記錄。
解決完這個問題咱們明白,若是遇到某些錯誤精心想一想,而不是一股腦扎進錯誤之中研究錯誤,可能半小時就能夠解決問題了,也不至於折騰一個半天后又折騰一個半天咯。