1. 程式人生 > >MySQL : Access denied for user ''@'localhost' to database 'mysql'問題看點。

MySQL : Access denied for user ''@'localhost' to database 'mysql'問題看點。


 問題描述:
    MySQL命令列,登陸root賬戶的時候,密碼為不為空,但是執行‘use mysql;’命令的時候,總是提示:‘Access denied for user ”@’localhost’ to database ‘mysql’ ’。
   仔細看錯誤提示Access denied for user ''@’localhost’ to database ‘mysql’,意思就是:拒絕user為 ” 的賬戶登陸,就用空密碼登入為匿名使用者,沒有許可權,自己的密碼又忘記了。沒辦法就只有該自己的密碼。

問題一解決root密碼的辦法

  MySQL安裝目錄下找到 my.ini檔案,編輯, 找到[mysqlId],在之後添skip-grant-tables(跳過授權表),此時重啟 MySQL服務,開啟命令列,就可以使用空密碼登陸了。(記得重啟服務)

1.   mysql -u root -p
2.   //輸入密碼,直接使用回車,用空密碼登陸
3.    mysql>use mysql;
4.   mysql>update user set password=PASSWORD('這裡輸入你的新密碼要用單引號') where user='root';
5.  mysql> flush privileges;

2.此時,重新啟動MySQL服務,然後重新開啟控制檯。 
3.記得把 my.ini 檔案中最後新增的那行配置skip-grant-tables給刪除了,刪除後,要重啟服務。使用新密碼登陸。

問題二解決‘localhost’的辦法


 在以上的方法實施後,還是拒絕user為 ” 的賬戶登陸操作。這是什麼原因了?在網上搜n久也沒有看出所以然。
又前面的操作,跳過授權表,空密碼進入mysql,檢視user表。
 
 user | password                                  | host                                       |
+------+-------------------------------------------------+-----------------------------+
| root | *8**************************************D | %                                |
| root | *8**************************************D | localhost.localdomain |
| root | *8**************************************D | 127.0.0.1                     |
| root | *8**************************************D | ::1                                |
|      |                                                                | localhost                     |
|      |                                                                | localhost.localdomain |
| DCH  | *8**************************************D | %                               |
| DCH  | *8**************************************D | localhost                    |
 
 發現我的root使用者原來沒有localhost許可權?在mysql -uroot -p -h127.0.0.1登入ok!
 那就是沒有給“localhost”授權。  
 我記得授權時使用的'%',為什麼沒有“localhost”呢?這裡用%則代表了所有的host都能遠端訪問該mysql。
 但是查詢mysql官方文件說明後,‘%’並不包括localhost!為什麼這樣呢,害人不淺,快快對localhost和%都進行了賦權。
 grant all privileges on *.* to
[email protected]
"localhost" identified by "password"; 
 flush privileges;
登入成功!

相關推薦

MySQL : Access denied for user ''@'localhost' to database 'mysql'問題

 問題描述:     MySQL命令列,登陸root賬戶的時候,密碼為不為空,但是執行‘use mysql;’命令的時候,總是提示:‘Access denied for user ”@’localhost’ to database ‘mysql’ ’。    仔細看錯誤提示

Access denied for user ''@'localhost' to database 'mysql‘’

在修改mysql的root使用者密碼後,再登陸,提示如標題的錯誤,找了一番答案之後,終於解決,步驟如下: 1.停掉mysql: service mysqld stop 2.使用不驗證的狀態登陸mysql: mysqld_safe --ski

ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'忘記mysql密碼

        今天去連公司的mysql資料庫,忽然發現用原來的密碼登入不進去,不知道是什麼鬼,只能強制修改了!我的作業系統是Centos6.5 ,一共有兩種方法:1、修改配置檔案 [[email protected]~]#  service  mysqld  st

遇到錯誤ERROR 1044 (42000): Access denied for user ''@'localhost'to database 'mysql',的解決辦法

新裝的mysql,訪問mysql資料庫是遇到問題:ERROR 1044 (42000): Access denied for user ''@'localhost'to database 'mysq

MySQL報錯:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

原因:mysql資料庫的user表裡,存在使用者名稱為空的賬戶可以視為匿名賬戶,導致登入的時候是雖然輸入的是root,但實際用匿名登入的; 解決辦法: 在my.cnf的[mysqld]欄位加入

Mysql錯誤: Access denied for user ''@'localhost' to database 'mysql'

1.關閉mysql   # service mysqld stop2.遮蔽許可權   # mysqld_safe --skip-grant-table   螢幕出現: Starting demo fr

解決Access denied for user ''@'localhost' to database 'mysql'問題

在修改mysql的root使用者密碼後,再登陸,提示如標題的錯誤,找了一番答案之後,終於解決,步驟如下:1.停掉mysql:      service mysqld stop2.使用不驗證的狀態登陸mysql:              mysqld_safe --skip-

WampServer解決Access denied for user ''@'localhost' to database 'mysql'的問題

首先Access denied for user ”@’localhost’ to database ‘mysql’和 Access denied for user ‘root’@’localhost’ (using password: YES) 不是一個問題,

MySQL5.6.12 ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

問題描述: MySQL命令列,登陸root賬戶的時候,密碼為空,但是執行‘use mysql;’命令的時候,總是提示:‘Access denied for user ”@’localho

mysql ERROR 1044 (42000): Access denied for user ''@'localhost' to database

報錯,拒絕訪問。一臉懵逼,還可以有這問題?我的表明明在navicat可以看見呀。 後來想自己設定了mysql使用者名稱密碼。於是 mysql -uroot -p(你的密碼)。登入進去。 再看下sh

windows下mysql提示access denied for user ''@'localhost' to database

最近在使用MySQL,版本為‘5.6.20’。 在官網http://dev.mysql.com/downloads/mysql/下載最新windows安裝版本,之後安裝。我選的是custom安裝模式,設定安裝路徑後,一直next即可。 安裝完成後,使用命令列cmd進入安裝路

mysql Access denied for user ‘dbaccount’@’%’ to database

遇到這個 Error, 就是說因為 dbaccount 許可權只開了 ‘dbaccount’@’localhost’,解法是再開一個許可權是 ‘dbaccount’@’%’ 就可以用外部 ip 連進 database server. SQL 語法: CREATE USER 'dbuser'@'localho

ERROR 1044 (42000)Access denied for user @localhost to database

ERROR 1044 (42000): Access denied for user ”@’localhost’ to database ‘demo’ 不管輸入什麼都是提示許可權不夠 mysql> create database sufadi; E

無法選擇資料庫!Access denied for user ''@'localhost' to database ''解決

php程式碼如下 $connection = @mysql_connect("localhost","scetol","sce1234" )or die("無法連線到資料庫!"); mysql_select_db("count")or die("無法選擇資料庫!"

access denied for user ''@'localhost' to database(Window 已親測)

新安裝的資料庫建立新資料庫的時候通常會出現access denied for user ''@'localhost' to database的錯誤,原因是用的是匿名使用者,需要更改密碼。網上流程的解決方案是Linux系統下的解決方法,這裡說下在Window下怎麼解決(親測)。

mysql建立資料庫後出現Access denied for user 'root'@'%' to database 'xxx'

歡迎掃碼加入Java高知群交流 1.建立資料庫 create database mytest; 2.連線資料庫 報以下錯: Access denied for user 'root'@'%' to database 'mytest' 原因:建立完資料庫後,需要進行

訪問網站出現Access denied for user 'root'@'%' to database 'xxx'

在linux下連線了資料庫之後,網頁上顯示Access denied for user 'root'@'%' to database 'xxx'的字樣時, 通過資料庫授權: grant all on xxx.* to 'root'@'%' identified by 'pa

Mysql 1044錯誤程式碼:Access denied for user ''@'localhost'的解決方案

        親愛的程式設計師們,在日常開發中,你是否遇到過使用者名稱+密碼登入不了mysql了,或者修改了mysql密碼之後,建立資料庫,總是提示1044錯誤程式碼呢,亦或者進入mysql之後,show databases只有test和information_schema

MySQL中出現Access denied for user '**'@'localhost' (using password: YES)

第一:當出現Access denied for user 'root'@'localhost' (using password: YES) 解決方案:     1、開啟MySQL目錄下的my.ini檔案,在檔案的最後新增一行“skip-grant-tables”,儲存並關閉

解決mysqlAccess denied for user 'root'@'localhost'”

# mysql -uroot -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 使用網上介紹的方法修改root使用者的密