簡體   English   中英

#1045 - 用戶 'root'@'localhost' 的訪問被拒絕(使用密碼:是)

[英]#1045 - Access denied for user 'root'@'localhost' (using password: YES)

這似乎是多余的,但我無法找到正確的解決方案。

我無法使用 mysql 控制台登錄 mysql。它要求輸入密碼,我不知道我實際輸入了什么。(有沒有辦法獲取或更改密碼?)這就是我的 config.inc 的樣子.

當我嘗試打開 phpmyadmin 時出現此錯誤(#1045 - Access denied for user 'root'@'localhost' (using password: YES))

<?php

/* Servers configuration */
$i = 0;

/* Server: localhost [1] */
$i++;
$cfg['Servers'][$i]['verbose'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
 $cfg['Servers'][$i]['auth_type'] = 'cookie';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'prakash123';
$cfg['Servers'][$i]['AllowNoPassword'] = true;

/* End of servers configuration */

$cfg['DefaultLang'] = 'en-utf-8';
$cfg['ServerDefault'] = 1;
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';


/* rajk - for blobstreaming */
$cfg['Servers'][$i]['bs_garbage_threshold'] = 50;
$cfg['Servers'][$i]['bs_repository_threshold'] = '32M';
$cfg['Servers'][$i]['bs_temp_blob_timeout'] = 600;
$cfg['Servers'][$i]['bs_temp_log_threshold'] = '32M';


?>

我試圖卸載(加上刪除所有相關文件)WAMP 並重新安裝。它也沒有幫助。 在重新安裝 WAMP 服務器時,它不要求任何用戶名密碼的東西,我不知道為什么。 非常感謝任何幫助。

我首先在提示符下更改了運行 mysql 的 root 密碼

mysql -u root -p

更新密碼:

UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';

使用新的 root 密碼在文件config.inc.php中編輯行:

$cfg['Servers'][$i]['password'] = 'MyNewPass'

停止並重新啟動 mysql 服務(在 Windows 中: mysql_stop.bat / mysql_start.bat

並讓 phpMyAdmin 工作!

編輯 2017:對於 MySQL≥5.7,使用authentication_string代替Password (請參閱此答案):

`UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE User='root';

`

問題是我安裝了 2 個 Mysql 實例,但我不知道這兩個實例的密碼。只需檢查端口 80 是否被任何程序使用。 這就是我所做的

1.退出Skype,因為它正在使用端口80。(請檢查端口80是否被任何其他程序使用)。

2.在任務管理器中搜索Mysql服務並停止。

3.現在刪除所有相關的mysql文件。確保刪除所有文件。

4.重新安裝

好吧,上面已經給出了許多解決方案。 如果它們都不起作用,也許您應該嘗試再次將密碼重置為“root”,如此所述,然后在其他瀏覽器中重新打開http://localhost/phpMyAdmin/ 至少這個解決方案對我有用。

這對我有用。 在你的配置文件中

$cfg['Servers']['$i']['password'] = 'yourpassword';

在你的 mysql shell 中,以 root 身份登錄

mysql -u root

如果您忘記了舊密碼,請更改密碼或更新

UPDATE mysql.user SET Password=PASSWORD('yourpassword') WHERE User='root';

從 xampp 控制面板停止並重新啟動 mysql 服務器。 phpmyadmin 可以登錄查看您的數據庫

mysql.exe->以管理員身份運行或轉到以下路徑 C:\wamp\bin\mysql\mysql5.5.24\bin 然后右鍵單擊 mysql.exe 轉到屬性然后選擇選項卡作為兼容性並查看對話框底部權限級別的框,只需選中以管理員身份運行此程序,然后單擊應用 ok.finished 現在您打開成功的 phpMyadmin。 再見

  1. mysql -u root -p
  2. UPDATE mysql.user SET Password=PASSWORD('mypass') WHERE User='root';
  3. 刷新權限: FLUSH PRIVILEGES;
  4. 通過鍵入退出: Exit
  5. 使用新的 root 密碼編輯文件 config.inc.php 中的行: $cfg['Servers'][$i]['password'] = 'mypass'

  6. 成功

轉到“config.inc.php”。 在這里寫下你的密碼 - $cfg['Servers'][$i]['password'] =''

這個過程在糾正錯誤方面非常簡單。 發生的事情是無法連接到 phpMyAdmin。 為了解決這個問題,您只需向位於 apps\phpMyadmin\config.ini.php 的系統 phpMyAdmin 配置文件提供正確的密碼 1. root 應該已經設置為用戶 2. 在 ' ' 和那它。

如果您仍然有問題,則這意味着需要更新用戶名和/或密碼或將其插入數據庫。 為此,請使用命令行工具並進行更新。

UPDATE mysql.user SET Password=PASSWORD('Johnny59 or any you want to use') WHERE User='root';

轉到config.inc.php ,找到$cfg['Servers'][$i]['password']並刪除任何提供的密碼,即更改$cfg['Servers'][$i]['password'] = 'password'; with $cfg['Servers'][$i]['password'] = '';

現在您可以啟動phpMyAdmin

phpMyAdmin中選擇Users菜單,選擇root用戶並單擊Edit previlidges 現在向下滾動到更改密碼區域,在無密碼密碼之間切換以提供您的新密碼。 而已。

我今天有同樣的錯誤。 我已經安裝了 Djangostack,當我檢查我的任務管理器時,有兩個 mysqld 實例正在運行。 我檢查了一個用於 wamp 服務器,另一個用於 django 堆棧。 我結束了 django 堆棧的一個,重新啟動了 wamp 服務器中的所有服務,我能夠訪問 phpmyadmin

安裝后我啟動了 wamp,我被要求輸入默認設置的用戶和密碼(用戶:管理員密碼:點),這與來自您的主題的消息是錯誤的。 比,我剛輸入:

Username: root 
Password: (leave it empty)

它對我有用!

  1. 轉到C:\xampp\phpMyAdmin

  2. 編輯config.inc.php文件

  3. 替換$cfg['Servers'][$i]['auth_type'] = 'config'; 通過$cfg['Servers'][$i]['auth_type'] = 'cookie';

現在PHPMyAdmin會詢問您的密碼,不再有錯誤。

試試下面的代碼:

$cfg['Servers'][$i]['password'] = '';

如果您在 phpMyAdmin 的“ Users Overview ”頁面中看到“root”用戶的“密碼”列字段為“否”。

使用 MariaDb,上述解決方案不起作用。

使用(下面以 ubuntu 16.04 和 mariadb-server Distrib 10.0.28 為例):

    sudo mysql_secure_installation
    …
    Change the root password? [Y/n] 
    New password: 

對於 UNIX,試試這個。 它對我有用:

  1. 連接 MySQL 使用 Navicat Premium 和初始根/“密碼”
  2. UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N' WHERE User = 'root' AND Host = 'localhost'; FLUSH PRIVILEGES;
  3. 重啟 MySQL

我也遇到過類似的錯誤,后來發現我的密碼不對。

首先你必須去 config.inc.php 文件然后改變下面的指令

$cfg['Servers'][$i]['user'] ='';
$cfg['Servers'][$i]['password'] =''; 

或者

在此處輸入圖像描述

如果您因為無法登錄 phpMyAdmin 而來到這里,請嘗試使用 Mysql 中的 root 密碼,而不是您在安裝 phpMyAdmin 時輸入的密碼。

剛才我有這種情況,我試過這種方法,很簡單。

首先使用以下命令停止 mysql 服務:

service mysql stop

然后再次使用此命令啟動您的 mysql 服務

service mysql start

我希望它可以幫助其他人...... :)

更新 MySql 后,我收到了相同的錯誤消息。 原來,在MySql上安裝不同版本后,在my.ini里面,端口不一樣了。 以前的 MySql 版本有端口 3306,但新版本有端口 3308。檢查你的 MySql my.ini,如果它不同,請在連接中使用來自 .ini 的端口。

php artisan serve 

此命令第一次獲取 env 內容,如果您更新 .env 文件需要重新啟動它。

在我的情況下,我的用戶名和 dbname 是有效的,並且php artisan migrate工作

但需要 cntrl+c ,取消 php artisan serve ,然后再次運行

php artisan serve

檢查環境變量的名稱

我的案例:

  • 我在python-flask項目中使用sqlalchemy並遇到了這個問題。
  • 使用的 IDE: PyCharm
  • 在我的config.py文件中,我將SQLALCHEMY_DATABASE_URI設置為:
SQLALCHEMY_DATABASE_URI = os.getenv("DATABASE_URI")

我犯的錯誤(這是一個愚蠢的錯誤😅)

  • 在 PyCharm 中設置evironment_variables時,我做了:
SQLALCHEMY_DATABASE_URI=<my_db_uri>

解決方案

  • 我將上面的內容更改為:
DATABASE_URI=<my_db_uri>

納馬斯特🙏

在 C:\xampp\mysql\bin 的 my.ini 文件中,在#Mysql Server下的[mysqld]命令后添加以下行:

skip-grant-tables

這應該會刪除錯誤 1045。

如果多個 myslq 在同一端口上運行,則在此處輸入圖像描述

右鍵單擊 wamp 並測試端口 3306,如果其 wampmysqld64 正確,否則更改端口號並重新啟動服務器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM