1. 程式人生 > >mysql無法登入的解決辦法

mysql無法登入的解決辦法

 MySQL root密碼正確,卻怎麼也無法從本地登入MySQL,提示

  1 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

  這裡後來經高人指點才發現mysql庫中的user表缺少一個root指向host:localhost的資料項,只有一個root指向host:主機名的資料項,故怎麼也無法利用root賬戶登入MySQL。

  總結一點就是root賬戶缺失了訪問localhost主機的賬戶資訊,導致無法本地登入。

  那有什麼辦法恢復root登入呢?

  這裡記錄一下今天遇到的糾結事情:

  首先kill掉MySQL程序然後在啟動mysql的引數中加入

  --skip-grant-tables

  會發現這時無密碼就可以登入mysql了。

  當然我們還必須修復root賬戶丟失的資料項。

  這裡有兩種解決方案:

  第一種是因為root賬戶初始的時候有3條記錄,包含root對應localhost,hostname,127.0.0.1三條賬戶資料,我們可以update host為其他兩項中一項為localhost即可。

  第二種是直接insert一條記錄,host為localhost即可

  總結一下:即使root的host包含了主機名,127.0.0.1那麼依然是無法正常登入的,這裡必須要有localhost的host才行。

  如果上面辦法還是無法正常登入我們可嘗試另一種辦法

  在本地用mysql命令直接回車可以進入mysql,但是裡面只有test和information_schema資料庫,沒有mysql等資料庫,使用use mysql報如下錯:

  mysql> use mysql

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

  意思是說沒有指定user,沒有許可權訪問資料庫mysql。

  那麼用root登入呢,輸入正確的密碼報如下錯:

  [[email protected]

~]# mysql -uroot -p123456

  ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

  密碼正確的情況下,mysql資料庫已經禁止了root使用者在本地的登入許可權了。

  使用root使用者通過主機127.0.0.1登入就可以正常進入mysql,127.0.0.1和localhost對mysql資料庫來講是不同的主機,

  [[email protected] ~]# mysql -uroot -p123456 -h 127.0.0.1

  這讓我想起了mysql下的user表。

  我們要進mysql看user表,一種方法可以通過上面的命令,如果不行,可以用下面的命令啟動資料庫,預設密碼進入

程式碼如下

[[email protected] ~]# /etc/init.d/mysql stop
[[email protected] ~]# /usr/local/mysql/bin/mysqld_safe –skip-grant-tables &
[[email protected] ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1
Server version: 5.1.57 Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> use mysql
Database changed
mysql> select user,host,password from user where user='root';
+——+——————-+——————————————-+
| user | host | password |
+——+——————-+——————————————-+
| root | % | *A50E066E106320CF4142 |
| root | centos | *A50E066E106320CF4142 |
| root | 127.0.0.1 | *A50E066E1063608320CF4142 |
+——+——————-+——————————————-+
3 rows in set (0.12 sec)

  發現user表host欄位中沒有localhost,但是我的理解是%代表所有的主機都能登入的,為什麼localhost不能呢,同樣的情況我在5.0.45版的mysql上面做實驗就不會發生localhost無法登入,我當前用的是5.1.57版的,難道是版本的問題?

  接下來的修改很明顯了:

程式碼如下
mysql> update user set host='localhost' where user='root' and host='%';
mysql> flush privileges;

  OK,退出mysql,重啟mysql就解決問題了

相關推薦

伺服器異常斷電,導致ORACLE無法登入解決辦法

伺服器異常斷電,導致ORACLE無法登入。 我解決辦法是: SQL> alter system set "_allow_resetlogs_corruption"=true scope=spfile; 重啟服務; 將sqlnet.ora檔案開啟(以記事本形式)將NTS

windows server 2008R2 重啟伺服器,導致MySQL 無法連線解決辦法

問題描述: 今天由於業務的需求,需要重新搭建一個分散式服務監控中心,我搭建完zookeeper 後,啟動zookeeper.cmd 服務,總是出現閃退的問題,初步排查為埠被佔用,我也沒有使用killed 相關程序指令,鬼使神差的使用重啟伺服器的方法,但我連線mysql 伺服

本地vsftp帳號無法登入解決辦法

這幾天弄vsftp,結果本地的帳號不能登入,,在登入的時候總是出現在我自己寫的ftp程式中哈,出現我在傳送命令pass的時候,格式是:pass(大寫)+password    /r/n的,命令和密碼都是正確的,但是卻總是要出現這個錯誤的response,我當時就物語了,錯誤為

mysql無法登入解決辦法

 MySQL root密碼正確,卻怎麼也無法從本地登入MySQL,提示   1 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)   這裡後來經高人指點才發現mysql庫中的user表

192.168.*.* 的ip無法連線Mysql資料庫的解決辦法

預設情況下,帶有密碼的Mysql外網不允許遠端訪問,為了解決這個問題,我們可以採用下面的方法: 採用--授權法。 例如,你想myuser使用mypassword從任何主機連線到mysql伺服器的話。 GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFI

無法遠端連線阿里雲mysql資料庫的解決辦法

背景:使用阿里雲伺服器 ubuntu 16.04,mysql5.7 問題:遠端連線mysql資料庫報錯:ERROR 2003 (HY000): Can't connect to MySQL server on '120.78.150.110' (110) 分析:1. 預設情

新安裝mysql無法登入問題解決,忘記密碼同解

安裝mysql後,一般來說預設root使用者的密碼是空的,但是由於某種原因導致密碼並不為空,導致登入報錯 解決辦法:   登陸伺服器,找到my.cnf檔案,通常會在 /etc目錄下(如果不在,可以用find / -name my.cnf命令查詢),然後使在[mys

非正常關機導致無法啟動MYSQL提示丟失mysql.sock的解決辦法

判斷一般人解決故障時沒有切換到mysql使用者,造成許可權有問題,無法建立mysql授權表,所以也就無法建立/tmp/mysql.sock 和hostname.pid檔案。因此,總結解決方法如下:  (1)給mysql資料夾賦許可權 #chmod -Rf 777 mysql

CentOS 有線無法上網 解決辦法 AR8161安裝

linux網卡驅動如果你的電腦安裝了CentOS後無法用有線上網,那麽就請執行這個命令:lspci | grep -i eth我 的終端顯示的結果為:02:00.0 Ethernet controller: Qualcomm Atheros AR8161 Gigabit Ethernet (rev 08)接著

MySQL 1366錯誤解決辦法

eat 服務 來看 status 編碼 ddr not hang direct MySQL 1366錯誤大致描述如下 SQL Error: 1366: Incorrect string value: "xE8xAFxA6xE7xBBx86…" for

桌面出現removable storage devices文件夾無法刪除解決辦法

mov 電腦 文件夾 自動 ble 消失 今天 title 無法 今天桌面突然出現 removable storage devices 文件夾,且沒有刪除選項。 解決辦法:往電腦裏插一下u盤文件夾就會自動消失了。桌面出現removable storage devices

全網最詳細的跑python2.7時出現from mysql import connector ImportError: No module named mysql的問題解決辦法(圖文詳解)

領域 conda load 機器學習 同時 精華 center mod con     不多說,直接上幹貨! C:\Users\lenovo>pip install mysql-connector-python-rf==2.1.3 Col

系統藍屏,開機無法啟動解決辦法

server fff .com 無法 解決 image 51cto conf win 大家經常遇見Windows系統無法啟動,尤其是在Server2008和Win8的操作系統以後,借助深山紅葉等修復工具,很難達到滿意的效果。其實大家可以使用Windows自帶的dos

華碩主板安裝Ubuntu雙系統無法啟動解決辦法

開機 ios usb model body OS col http fast 問題描述: 在安裝完Ubuntu後,開機後沒有啟動項可以選擇,而是直接進入win10系統。 解決辦法: 開機進入bios,選擇 高級模式 (Advance model),進入 啟動(boot)選項

mysql 死鎖解決辦法

ESS .html blog proc 數據 lis 說明 查詢 http 查詢表的時候,發現一圈圈轉啊轉,就是不出來數據,猜測表被鎖住 解決辦法 :   mysql> show processlist ;   mysql> kill 4; 說明

VS2013DEV控件與DataTable調試時無法共存解決辦法

cmd pro bsp source 刪除 目錄 security 鏈接地址 file 1. 關閉所有vs 程序,包括vs2005 vs2012 vs2013等 2.修改dev代碼,重新編譯DLL,步驟如下: 用defines.bat 替換 C:\Program Fil

虛擬機VMware安裝linux無法上網解決辦法

reference enter 沖浪 inux get watermark -s HR tis 虛擬機VMware安裝linux無法上網解決辦法 Linux網絡設置: 依次單擊【System】-->【Preferences】-->【Netw

華為和H3C交換機NTP version不一致導致時間無法同步解決辦法

有效 一個 一分鐘 服務器配置 原因 ESS 服務器 官方文檔 play 昨天給客戶內網網絡設備配置NTP服務,用的華為9303做的NTP服務器,其它設備為NTP客戶端。但是華為所有設備成功同步到NTP服務器,而H3C設備均無法正常同步。華為交換機作為服務器配置如下:ntp

mysql常見錯誤解決辦法

ive uid ext conn gone mode 利用 name current 解決mysql利用二進制日誌恢復數據報錯:ERROR 1781 (HY000) at line 16: @@SESSION.GTID_NEXT cannot be set to UUID:

mac 中登陸mysql忘記密碼解決辦法

data mysqld gis skip database 修改密碼 names sudo and 1、打開終端,輸入命令:cd /usr/local/mysql/bin 2、mysql -uroot -p,用這條命令登陸時報錯信息: 報錯:Enter passwo