1. 程式人生 > >Navicat for MySQL破解,以及連線資料庫出現錯誤:1045-Access denied for user 'root'@'localhost'解決方法

Navicat for MySQL破解,以及連線資料庫出現錯誤:1045-Access denied for user 'root'@'localhost'解決方法

好久沒動自己windows電腦上的mysql資料庫了,今天用的時候發現navcat到期了,網上找了一個破解檔案,挺好用,分享一下:

連結: https://pan.baidu.com/s/1slwQxVB 密碼: r737

我navcat的版本:

然而連線資料庫的時候發現報錯:

於是沒辦法,只好去網上找解決的辦法。

然而找了一圈,並沒有一個能夠解決我這個問題的(因為是我個人的原因)。

不過好在問題已經解決,所以在這裡總結一下:

1、出現這個問題的原因之一是許可權的問題,也就是說你的電腦可能沒有許可權訪問mysql資料庫。

講道理這種情況其實基本上不該遇到,因為我們在安裝mysql之後,root其實是有最高許可權的,而且很少會有人去修改root的許可權。

這個問題的解決方法就是授權。授權命令大概是這樣的:

grant all privileges on *.* to 'root'@'我電腦的ip地址' identified by '密碼';


如果你不是用root登陸的,那麼就把root改成你的登陸名。

有的同學可能不知道這個命令往哪裡寫,

開始——執行——輸入“cmd”——點選確定

這樣就打開了我們的命令提示符介面:

然後找到我們的mysql的安裝目錄,將目錄複製到命令提示符中。如圖:

(cd 是什麼意思我想不用特別解釋了吧)

然後進入目錄下的bin檔案:

然後輸入 mysql -u root -p 如圖:

在Enter password: 後面輸入你的密碼。點選回車。

如果密碼正確,會出現Welcome 的字元。

如圖:

這樣就成功進入了mysql資料庫。

當然如果你已經設定了環境變數,那麼不用進入mysql目錄,直接輸入mysql -uroot就可以了。

當然,你也可以直接開啟mysql下的bin視窗,然後按住shift+滑鼠右鍵,選擇“在此處開啟命令視窗”,就可以直接在bin目錄下開啟命令提示符視窗了。

接下來就簡單了,直接將上面的程式碼修改一下就可以用了。比如我的電腦的ip地址是:192.168.0.103,我的root密碼是:123456,那麼我就可以將授權的語句改成:

grant all privileges on *.* to 'root'@'192.168.0.103' identified by '123456';
如果你是本地登入的,那麼:
grant all privileges on *.* to 'root'@'localhost' identified by '123456';
當然你也可以直接改成這樣:
grant all privileges on *.* to 'root'@'%' identified by '123456';
就可以給所有ip都設定root登陸了。
如果授權成功,會有Query OK的提示。
然後:
flush privileges;
這個是重新整理授權的意思,如果沒有這句話,授權可能無法立刻生效。
exit;
這個是退出的意思。


授權完成以後,你可以再嘗試一下登陸,看看能不能登上。反正我登陸不上。


2.需要重新設定root密碼(忘記root密碼)。
忘記密碼的情況還是比較常見的,如果你忘記了密碼,用navicat登陸的時候也會有這個提示,那麼就需要修改root密碼了。
這一步我也從網上找了一些方法,然後還是沒有解決問題,最後才知道是被自己給坑了——
第一步:找到mysql的根目錄,找到根目錄下的bin檔案,按住shift鍵,右擊滑鼠,選擇:在此處開啟命令視窗。如圖:

在命令列輸入 net stop mysql 來停止當前執行中的mysql服務。
然後坑來了:

提示沒有啟動mysql服務。
可是我剛剛是登陸進去的,我知道是啟動了的,於是net start mysql 啟動一下:

服務無法啟動……
好在還可以在管理裡面啟動服務:
計算機——右鍵——管理——服務和應用程式——服務——MySQL——啟動:

出現這個提示。而且mysql後面緊跟的mysql57,mysqla又是什麼東西?
看不明白,只好去網上找答案,網上也有說要找my.ini 檔案的,也有說跟data資料夾有關的。然後我又看了一眼自己的mysql根目錄:

真的沒有data資料夾,而且連my.ini配置檔案都沒有……哇!我都懷疑是不是裝了一個假的資料庫。又去bin資料夾裡找,也沒有my.ini檔案。
然後又看到網上有大神說5.7版本以後的mysql好像就是沒有data資料夾,解決辦法就是,要麼從別的資料庫拷貝一個過來,要麼用命令提示符重新生成一個data資料夾。
拷貝的當然不合適,最好還是用語句生成一個。
生成語句:mysqld --initialize-insecure --user=mysql
這個語句需要執行一段時間,執行完成之後,目錄已經生成了一個data檔案:

這下應該沒有什麼問題了吧!net start mysql:

還是啟動不了……
難道是沒有my.ini的原因?網上找了一下,my.ini是配置檔案,不可能沒有的。如果沒有的話mysql是不能正常工作的。
而我的mysql是可以正常工作的,原因就是我剛剛上面修改許可權的時候還用123456這個密碼登入進去,修改成功了……
我突然想到我可以直接進入mysql,跟剛剛修改許可權一樣,修改一下密碼就可以了,為什麼非得糾結在這個net start mysql 呢?
於是 mysql -u root -p 登陸資料庫。


use mysql;




update user set password=password('123') where user = 'root';
如圖:

報錯:不知道'password'是什麼。
原來現在password已經不叫password了,而是叫 authentication_string:
update user set authentication_string=password('123') where user = 'root';
然後重新整理:
flush privileges;
關閉:
quit;
現在密碼已經改成123了,現在你可以試一下用root和123登陸,看看能不能在navicat登陸上。反正我是沒登上。
我已經絕望了。
出去吸了一支菸。
回來:
net start mysql57:

請求的服務已經啟動。
難道我的電腦裝了兩個mysql,導致衝突了???於是我又找到計算機管理,把mysql57服務停止,再啟動mysql服務。沒辦法,又把mysql57下面
的那個可疑的mysqla服務停止,然而,
還是啟動不起來。
於是我右鍵檢視mysql的屬性:

可執行檔案路徑就是我一直在用的這個路徑。
現在最大的疑點就是my.ini了。百度找了一圈,發現它竟然在programdata裡:

為了驗證這個ini檔案究竟是不是mysql的檔案,在my.ini 檔案中找到[mysqld]欄位,
並在下面新增skip-grant-tables,如圖:

然後回到命令提示符:
mysql -u root -p
不輸入密碼,直接回車,發現也進入了mysql.
(通過這個方法,在不知道密碼的情況下進入mysql,然後修改root的密碼,
update user set authentication_string=password('123') where user = 'root';
步驟同我上面介紹的修改密碼的方法一樣。)


也就是說這個my.ini就是mysql的ini。
於是我又回到管理,找到mysql57的路徑:
"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" MySQL57
於是我又看了一眼mysqla的路徑:
G:\phpstudy\mysql\bin\mysqld.exe MySQLa
哇,我好像突然明白到底是什麼原因了……
於是我把mysqla服務停止,然後重新用navicat登陸mysql:

成功了……
萬惡的phpstudy……
phpstudy的截圖:

它是自帶一個tomcat和一個mysql的。我好久之前安裝過一個,後來忘了。就是因為有兩個mysql服務,導致我的navicat一直在連pnpstudy的mysql。
當然這個鍋phpstudy是不背的,還是得我背……

相關推薦

Navicat for MySQL破解以及連線資料庫出現錯誤1045-Access denied for user 'root'@'localhost'解決方法

好久沒動自己windows電腦上的mysql資料庫了,今天用的時候發現navcat到期了,網上找了一個破解檔案,挺好用,分享一下: 連結: https://pan.baidu.com/s/1slwQxVB 密碼: r737 我navcat的版本: 然而連線資料庫

解決Navicat for MySQL開啟連線出現錯誤提示1045 access denied for user 'root'@'localhost' (using password yes)的問題

        買了新電腦,裝上MySQL建立連線後打不開,提示“1045 access denied for user 'root'@'localhost' (using password yes)”,我是吃瓜群眾一個,網上搜了好久,其實早就看到解決辦法了,但是由於自己水平

解決MySQL 報錯1045- Access denied for user 'root'@'localhost'(using password YES)

一、前言 今年瘋狂迷上了開源,只要看到好的開源專案,就會不顧一切一股腦扎進去研究,五一期間發現一個很好的關於眾籌的開源專案,但不巧,這個專案竟然是 PHP 寫的,沒學過 PHP,自然對這個開源專案毫無頭緒了,但我竟然為了這個專案,毅然決定入坑 PHP,

navicat 提示“1045 access denied for user 'root'@'localhost' ”解決方法

cmd命令列切換到MySQLbin目錄下, mysqld --skip_grant_tables;//跳過許可權驗證。 登入mysql後 mysql -u root -p;         //mysql首次登入預設密碼為空。 方法一: mysql>updatem

Navicat連線mysql報錯【1045 - Access denied for user 'root'@'localhost'(using password: YES)】

win10使用Navicat連線mysql8.0時,出現報錯【1045 - Access denied for user 'root'@'localhost'(using password: YES)】 或者,命令列連線mysql時,報錯【ERROR 1045 (28000): Access d

MySQl-python模組python連線資料庫出現的問題

雖然是個小問題,還是打算寫一下。 python連線資料庫時遇到了這樣一個問題: Traceback (most recent call last):  File "./mysql-python.py", line 5, in <module>    conn=

解決用navicate遠端連線資料庫出現1045 access denied for user 'root'@'localhost' using password yes

  在mysql命令列中執行 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456XXX');  GRANT ALL PRIVILEGES 

mysql 連結或者database資料庫或者table表 報1045 access denied for user 'root'@'localhost'異常錯誤

莫名其妙雙擊表格的時候報這個錯誤,然後關掉這個庫,雙擊連結名localhost_3306也報這個錯誤,找方法 網上有很多,我用的是 mysqld --skip_grant_tables;//跳過

1045 access denied for user 'root'@'localhost' using password yes 以及Can't connect to MySQL解決方法(簡單方法

昨天還可以連結,今天突然無法訪問資料庫,經過嘗試發現了原因 在網上搜了很多方法,似乎都很麻煩,最後找到了解決方法,我的是mysql 5.7  導致這種情況發生的原因是:mysql服務未啟動 解決方法如下: 開始-->控制面板-->管理工具-->服務--&g

關於Navicat mysql連接出現1045 access denied for user 'root'@'localhost' using password yes

百度了一下問題 ,大部分都是說mysql沒有給機器許可權,解決方法大都是給予許可權: 一個個試過來最後還是不行。重點來了!!突然想起來密碼好像換過一次,重新輸次密碼,然後就連上了。。。。 所

2003 64位 方法執行asp 連線資料庫出現錯誤設定方法

 由於Win R2 是64位系統。在用IIS測試ASP網站時,連線資料庫程式碼總是不成功。        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.mappath(db) 用這種方式時返回“3706

新手PHP連接MySQL數據庫出問題(Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: YES))

admin 提示 文件 無法 sin for serve 方法 onf 我用的環境是wampServer集成的軟件包 在php連接MySQL數據庫的時候老是出現這個問題Warning: mysqli_connect(): (HY000/1045): Access denie

Ubuntu下連接mysql出現 ERROR 1698 (28000): Access denied for user 'root'@'localhost'錯誤解決方法

use ces 數據 表示 vim amp https 創建 sel ubuntu版本:18.04 mysql版本:5.7.24 ubuntu安裝mysql後用root賬戶登入會出現問題:ERROR 1698 (28000): Access denied

MySQL使用普通用戶訪問返回ERROR 1698 (28000): Access denied for user 'root'@'localhost'

解決 plugin flush use 通用 ant 普通用戶 user 顯示 這個問題最開始查資料都說要改密碼,密碼不對。其實不是這個樣子都。 解決方法 修改/etc/mysql/my.cnf,添加以下內容 [mysqld] skip-grant-tables 重啟m

Win7環境下安裝mysql報錯1045:Access denied for user [

之前安裝mysql時就折騰了好久,今天電腦崩潰,重灌系統,重灌mysql又遇到了問題,在此做一個記錄。解決過程中主要參考了MySQL 1045登入失敗完美解決方案。 解決思路大體上為通過免密方式登入mysql,然後對密碼進行修改。 問題如下:裝好mysql後,管理員開啟命令列,用mysq

關於遠端訪問mysql出現Access denied for user 'root'@'的解決方法

原因: 這是因為雖然使用者名稱和密碼正確,但是卻沒有在其他ip地址上訪問的許可權。需要登入mysql然後修改許可權。 解決方法: 具體操作是首先本地登陸MySQL,然後執行這兩句程式碼:GRANT ALL PRIVILEGES ON . TO [email

Host is not allowed to connect to this MySQL server 和 access denied for user 'root'@'localhost' 解決辦法

昨天,我讓同事連我的資料庫,連不上,報錯: Host is not allowed to connect to this MySQL server 這個錯誤之前也見過,意思是說我的 MySQL 伺服器不允許這臺主機連線。需要修改 MySQL 資料庫中的資料

遠端訪問mysql出現Access denied for user 'root'@'的解決方法

錯誤解釋:伺服器沒有授權給你這個ip是不能連線的 你想root使用者名稱使用root密碼從任何主機連線到mysql伺服器的話。 執行命令:mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'r

mysql 1045 access denied for user 解決方法

提示:1045 access denied for user 'root'@'localhost' using password yes方法一:# /etc/init.d/mysql stop # mysqld_safe --user=mysql --skip-grant-

Access Denied for user root @localhost 解決方案

my.ini chan acc exit log users err net ces 問題描述: C:\Users\bo.wang> mysql -u root -p Enter password: ERROR 1045 (28000): Access denied