1. 程式人生 > >windows下mysql提示access denied for user ''@'localhost' to database

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

最近在使用MySQL,版本為‘5.6.20’。

在官網http://dev.mysql.com/downloads/mysql/下載最新windows安裝版本,之後安裝。我選的是custom安裝模式,設定安裝路徑後,一直next即可。

安裝完成後,使用命令列cmd進入安裝路徑bin目錄下,我的目錄為“D:\Program Files\mysql\MySQL Server 5.6\bin”。

用root帳號連上mysql,語句為“mysql -u root”即可,然後建立一個資料庫,提示如下錯誤:

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

原因是因為mysql資料庫的user表裡,存在使用者名稱為空的賬戶即匿名賬戶,導致登入的時候是雖然用的是root,但實際是匿名登入的,通過錯誤提示裡的''@'localhost'可以看出來。

由於網上大多是Linux下解決方案,但是在windows下輸入命令卻有不同,經過在網上查詢試驗,終於找到一個比較有效的方法,現整理如下:

1、cmd模式進入mysql的bin目錄,輸入D:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld --defaults-file="D:\Program Files\MySQL\MySQL Server 5.6\my-default.ini" --console --skip-grant-tables

,回車

2014-08-29 10:40:48 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use
2014-08-29 10:40:48 8108 [Note] Plugin 'FEDERATED' is disabled.
2014-08-29 10:40:48 8108 [Note] InnoDB: Using atomics to ref count buffer pool pages
2014-08-29 10:40:48 8108 [Note] InnoDB: The InnoDB memory heap is disabled
2014-08-29 10:40:48 8108 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2014-08-29 10:40:48 8108 [Note] InnoDB: Memory barrier is not used
2014-08-29 10:40:48 8108 [Note] InnoDB: Compressed tables use zlib 1.2.3
2014-08-29 10:40:48 8108 [Note] InnoDB: Not using CPU crc32 instructions
2014-08-29 10:40:48 8108 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2014-08-29 10:40:48 8108 [Note] InnoDB: Completed initialization of buffer pool
2014-08-29 10:40:48 8108 [Note] InnoDB: Highest supported file format is Barracuda.
2014-08-29 10:40:57 8108 [Note] InnoDB: 128 rollback segment(s) are active.
2014-08-29 10:40:57 8108 [Note] InnoDB: Waiting for purge to start
2014-08-29 10:40:57 8108 [Note] InnoDB: 5.6.20 started; log sequence number 1625997
2014-08-29 10:40:57 8108 [Note] Server hostname (bind-address): '*'; port: 3306
2014-08-29 10:40:57 8108 [Note] IPv6 is available.
2014-08-29 10:40:57 8108 [Note]   - '::' resolves to '::';
2014-08-29 10:40:57 8108 [Note] Server socket created on IP: '::'.
2014-08-29 10:40:58 8108 [Note] mysqld: ready for connections.
Version: '5.6.20'  socket: ''  port: 3306  MySQL Community Server (GPL)

看到這個結果就說明MySQL已經起來了。
2、再開一個dos視窗,同樣切到mysql bin目錄下,D:\Program Files\MySQL\MySQL Server 5.6\bin>mysql -u root mysql,回車

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.20 MySQL Community Server (GPL)

mysql>

已連線上mysql資料庫,可以輸入mysql命令了。

3、設定密碼

mysql> update user set password=PASSWORD('password') where user='root';
Query OK, 2 rows affected (0.02 sec)
Rows matched: 3  Changed: 2  Warnings: 0

mysql> FLUSH PRIVILEGES; 
mysql> quit 

之後按正常方法連線mysql就可以了。如果不能連線,檢視下mysql服務是否啟動。

許可權問題,授權 給 root  所有sql 許可權

mysql> grant all privileges on *.* to [email protected]"%" identified by ".";
Query OK, 0 rows affected (0.00 sec)


mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)


相關推薦

windowsmysql提示access denied for user ''@'localhost' to database

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

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

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

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

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

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) 不是一個問題,

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

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

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

問題描述: MySQL命令列,登陸root賬戶的時候,密碼為空,但是執行‘use mysql;’命令的時候,總是提示:‘Access denied for user ”@’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 ''@'localhost'”的解決

bsp con sta class safe starting sin 改錯 pri 記得那時由於沒有網絡,把rootpassword改錯了寫成了: update user set password="122" where user="root"; 之後mysql就開始

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

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

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 8.x 登陸提示 Access denied for user 'root'@'localhost' (using password: YES)

第一步:修改 /etc/mysql/my.cnf。 在【mysql】下新增skip-grant-table;重啟。 第二步:通過mysql命令登陸;   flush privileges;   use mysql;   alter user 'root'@'localhost' ident

Navicat工具鏈接 mysql"Access denied for user'root'@'IP'" 用戶遠程賦值

示例 ESS IE navicat 連接數據庫 sjf 密碼 說明 spa 如題 用Navicat遠程連接數據庫出現錯誤 給用戶添加權限 連接MySQL mysql -uroot -p; use mysql; 更改權限 使用grant all privileg