錯誤如下:1045 Access denied for user 'root'@'localhost' (using password:YES)
成都創(chuàng)新互聯(lián)公司專注于合水網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供合水營銷型網(wǎng)站建設,合水網(wǎng)站制作、合水網(wǎng)頁設計、合水網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務,打造合水網(wǎng)絡公司原創(chuàng)品牌,更為您提供合水網(wǎng)站排名全網(wǎng)營銷落地服務。
想起來有可是在navicat添加的root@'%'用戶,可能密碼和現(xiàn)在新版本5.7的加密不同了,導致密碼不對.
所以解決方法是更新用戶密碼.
注意5.7版本密碼保存的列是 authentication_string ,密碼要用函數(shù)password加密.
更新密碼的SQL是 update user set authentication_string=password('密碼') where user="root";
下面是Windows平臺下操作步驟:
配置文件my.ini ,在mysqld下面添加skip-grant-tables,意思是可以直接回車登錄,保存退出。重啟mySQL,然后運行cmd
輸入mysql -u root -p就可以不用密碼登錄了,出現(xiàn)password:的時候直接回車可以進入。
1.切換到mysql數(shù)據(jù)庫:use mysql;
2.給root用戶設置新密碼,
mysql update user set authentication_string=password('密碼') where user="root";
3.刷新數(shù)據(jù)庫mysql flush privileges;
4.再修改my.ini,把剛加入的"skip-grant-tables"這行刪除或者添加#注釋,保存退出再重啟mysql服務就可以了。
一些參考命令
#刪除之前配置 drop user 'root' @ '%' ;
#配置遠程登錄 CREATE USER 'root' @ '%' IDENTIFIED BY password( '你的密碼') ;
#授權(quán) GRANT ALL ON *.* TO 'root' @ '%' ;
#更新權(quán)限 flush privileges;
#查看用戶,主機,加密方法 select user,host,plugin from user;
phpmyadmin登陸出現(xiàn)無法登錄MySQL是設置錯誤造成的,解決方法為:
1、首先打開運行命令窗口,可以通過按住windows鍵+R的組合鍵來實現(xiàn),輸入cmd,然后按下回車鍵。
2、這樣就進入了doc的命令窗口。
3、切換到我們安裝mysql的盤符。
4、然后再切換到mysql的bin目錄。
5、輸入mysql -uroot -p。
6、提示輸入密碼。
7、輸入mysql密碼之后,然后按下回車鍵,出現(xiàn)welcome的字樣表示登陸成功。
1 進入cmd,停止mysql服務:Net stop mysql
若是停不掉:Ctrl+Alt+Del打開任務管理器,在詳細信息里結(jié)束mysql.exe任務。
若服務名無效:來到MySQL的安裝路徑下bin,在命令行中輸入mysqld --install;成功:出現(xiàn)Service successfully install代表你已經(jīng)安裝成功;
2 進入bin目錄
mysqld -nt --skip-grant-tables
重新打開一個管理員命令提示符輸入mysql進入重新改密碼就OK了。
再次mysql -u root -p進入操作
mysqlupdate mysql.user set anthentication_string=password(‘你的密碼’) where user=‘root’;
mysqlflush privileges;//刷新MySQL的系統(tǒng)權(quán)限
mysqlquit;
再次mysql -u root -p進入就可以操作了。
MySQL有時候忘記了root密碼是一件傷感的事。這里提供Windows 和 Linux 下的密碼重置方法。
Windows:
1.以系統(tǒng)管理員身份登陸系統(tǒng)。
2.打開cmd-----net start 查看mysql是否啟動。啟動的話就停止net stop mysql.
3.我的mysql安裝在d:\usr\local\mysql4\bin下。
4.跳過權(quán)限檢查啟動mysql.
d:\usr\local\mysql\bin\mysqld-nt --skip-grant-tables
5.重新打開cmd。進到d:\usr\local\mysql4\bin下:
d:\usr\local\mysql\bin\mysqladmin -u root flush-privileges password "newpassword"
d:\usr\local\mysql\bin\mysqladmin -u root -p shutdown 這句提示你重新輸密碼。
6.在cmd里net start mysql
7.搞定了。
Linux:
MySQL root密碼的恢復方法之一
如果忘記了MySQL root密碼,可以用以下方法重新設置:
1.KILL掉系統(tǒng)里的MySQL進程;
killall -TERM MySQLd
2.用以下命令啟動MySQL,以不檢查權(quán)限的方式啟動;
safe_MySQLd --skip-grant-tables
3.然后用空密碼方式使用root用戶登錄 MySQL;
MySQL -u root
4.修改root用戶的密碼;
MySQL update MySQL.user set password=PASSWORD('新密碼') where User='root';
MySQL flush privileges;
MySQL quit
重新啟動MySQL,就可以使用新密碼登錄了。
MySQL提供跳過訪問控制的命令行參數(shù),通過在命令行以此命令啟動MySQL服務器:\x0d\x0asafe_mysqld --skip-grant-tables\x0d\x0a即可跳過MySQL的訪問控制,任何人都可以在控制臺以管理員的身份進入MySQL數(shù)據(jù)庫。\x0d\x0a需要注意的是在修改完密碼以后要把MySQL服務器停掉重新啟動才會生效\x0d\x0a先找到mysql.server 然后停止mysql服務\x0d\x0a# mysqld_safe --skip-grant-tables --skip-networking \x0d\x0a# mysql\x0d\x0ause mysql;\x0d\x0aupdate user set password=PASSWORD("new-password") where user="root";\x0d\x0aflush privileges;
MySQL root密碼正確,卻怎么也無法從本地登錄MySQL,提示
1 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
這里后來經(jīng)高人指點才發(fā)現(xiàn)mysql庫中的user表缺少一個root指向host:localhost的數(shù)據(jù)項,只有一個root指向host:主機名的數(shù)據(jù)項,故怎么也無法利用root賬戶登錄MySQL。
總結(jié)一點就是root賬戶缺失了訪問localhost主機的賬戶信息,導致無法本地登錄。
那有什么辦法恢復root登錄呢?
這里記錄一下今天遇到的糾結(jié)事情:
首先kill掉MySQL進程然后在啟動mysql的參數(shù)中加入
--skip-grant-tables
會發(fā)現(xiàn)這時無密碼就可以登錄mysql了。
當然我們還必須修復root賬戶丟失的數(shù)據(jù)項。
這里有兩種解決方案:
第一種是因為root賬戶初始的時候有3條記錄,包含root對應localhost,hostname,127.0.0.1三條賬戶數(shù)據(jù),我們可以update host為其他兩項中一項為localhost即可。
第二種是直接insert一條記錄,host為localhost即可
總結(jié)一下:即使root的host包含了主機名,127.0.0.1那么依然是無法正常登錄的,這里必須要有l(wèi)ocalhost的host才行。
如果上面辦法還是無法正常登錄我們可嘗試另一種辦法
在本地用mysql命令直接回車可以進入mysql,但是里面只有test和information_schema數(shù)據(jù)庫,沒有mysql等數(shù)據(jù)庫,使用use mysql報如下錯:
mysql use mysql
ERROR 1044 (42000): Access denied for user "@'localhost' to database 'mysql'
意思是說沒有指定user,沒有權(quán)限訪問數(shù)據(jù)庫mysql。
那么用root登錄呢,輸入正確的密碼報如下錯:
[root@228827 ~]# mysql -uroot -p123456
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
密碼正確的情況下,mysql數(shù)據(jù)庫已經(jīng)禁止了root用戶在本地的登錄權(quán)限了