1. 程式人生 > >Mysql 1045Error: Access denied for user 'root'@'localhost' (using password: YES)

Mysql 1045Error: Access denied for user 'root'@'localhost' (using password: YES)

 

#大概意思就是

把原有 mysql.ini 備份一份

接著 在原有 mysql。ini 替換為下面程式碼,暫時替代 配置

修改密碼後

然後再還原回來,親測有用

[mysqld]
skip-grant-tables
character-set-server=utf8
#繫結IPv4和3306埠
port = 3306
# 設定mysql的安裝目錄
basedir=D:/mysql-5.7.21-winx64
# 設定mysql資料庫的資料的存放目錄
datadir=D:/mysql-5.7.21-winx64/data
# 允許最大連線數
max_connections=200
# skip_grant_tables
[mysql]
default-character-set=utf8
[mysql.server]
default-character-set=utf8
[mysql_safe]
default-character-set=utf8
[client]
default-character-set=utf8

 

 

**
問題描述

**
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
或者
ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)

這其實是密碼錯誤導致的
但是我輸入的密碼是安裝MYSQL的時候設定的密碼,應該是正確的 。
其實並不是,因為mysql會隨機生成一個亂碼作為你的密碼。
你需要改掉(或者記下)這個密碼。

我用的是免安裝MYSQL安裝方式。
如果你從MYSQL官網下載來的 是zip那就是免安裝,如果是msi 就是安裝

**
問題解決

**
1.在mysql安裝目錄中新建一個my.ini的檔案
(先建立my.txt然後改掉格式名)
這裡寫圖片描述
2.在my.ini中輸入以下內容
記得根據自己的配置更改,比如安裝目錄和存放目錄,還有埠
存放目錄就是安裝目錄加 /data

skip-grant-tables 的作用是免密碼登陸

[mysqld]
skip-grant-tables
character-set-server=utf8
#繫結IPv4和3306埠
port = 3306
# 設定mysql的安裝目錄
basedir=D:/mysql-5.7.21-winx64
# 設定mysql資料庫的資料的存放目錄
datadir=D:/mysql-5.7.21-winx64/data
# 允許最大連線數
max_connections=200
# skip_grant_tables
[mysql]
default-character-set=utf8
[mysql.server]
default-character-set=utf8
[mysql_safe]
default-character-set=utf8
[client]
default-character-set=utf8

3.
儲存之後
在命令列輸入
net start mysql
啟動服務

4.
免密碼登陸mysql
mysql -u root -p
直接回車進去
現在就要更改密碼了

mysql> use mysql;

    1

update mysql.user set authentication_string=password('這裡是你的新密碼') where user='root' ;

    1

注意引號有沒有出錯

然後退出
mysql> quit

5.
把my.ini檔案裡的skip-grant-tables註釋掉

再重啟mysql

net stop mysql

    1

net start mysql
---------------------
作者:Fu4ng
來源:CSDN
原文:https://blog.csdn.net/junloin/article/details/79539378