springboot整合mybatis報錯:Access denied for user ''@'localhost' (using password: YES)
報錯:Springboot整合mybatis,連不上資料庫
問題1:mysql忘記密碼了
解決:重置使用者root密碼
1.在mysql安裝目錄下找到配置檔案 my.ini
2.修改mysql安裝目錄下的my.ini檔案
搜尋[mysqld],在下一行加上skip-grant-tables(跳過許可權表)
3.cmd(管理員模式),重啟mysql服務
輸入命令
①net stop mysql
②net start mysql
如果報錯:服務名不對,就去工作管理員中找到mysql服務 ,我的是MySQL
那麼命令就是 net stop MySQL ,net start MySQL
4.登入mysql伺服器
C:\Users\dell>mysql -uroot -p
mysql> use mysql #使用mysql資料庫
mysql> update user set password=PASSWORD("123456") where User='root' #更新使用者密碼
mysql>flush privileges #重新整理許可權
mysql> quit
然後刪掉my.ini中的skip-grant-tables,重啟mysql伺服器,即可登入root
問題2:誤刪使用者 root@localhost
select host,user,password from mysql.user; 查了一下發現只剩root@%了
解決:
1.建立普通使用者
2.給創建出的使用者授權
命令如下:
能登入 有所有許可權的使用者的用下面的命令
INSERT INTO mysql.user(Host, User, password, ssl_cipher, x509_issuer, x509_subject) VALUES ('localhost', 'root', PASSWORD('123456'), '', '', '');
grant all privileges on *.* to 'root'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
能登入的使用者沒有許可權(沒有WITH GRANT OPTION的)
直接進mysql.user表修改使用者資訊(skip-grant-tables)
INSERT INTO mysql.user(Host, User, password, ssl_cipher, x509_issuer, x509_subject) VALUES ('localhost', 'root', PASSWORD('123456'), '', '', '');
UPDATE mysql.user SETSelect_priv ='Y', Insert_priv='Y', Update_priv='Y', Delete_priv ='Y',Create_priv='Y', Drop_priv='Y', Reload_priv='Y',Shutdown_priv ='Y', Process_priv='Y', File_priv ='Y', Grant_priv ='Y', References_priv ='Y', Index_priv ='Y', Alter_priv ='Y', Show_db_priv ='Y', Super_priv ='Y', Create_tmp_table_priv ='Y', Lock_tables_priv ='Y', Execute_priv ='Y', Repl_slave_priv ='Y', Repl_client_priv ='Y', Create_view_priv ='Y', Show_view_priv ='Y', Create_routine_priv ='Y', Alter_routine_priv ='Y', Create_user_priv ='Y', Event_priv ='Y', Trigger_priv ='Y', Create_tablespace_priv ='Y'WHERE Host ='localhost' and User ='root';
一個使用者都沒有,步驟同上,insert user ,update 使用者許可權
最後查許可權,root@localhost有 ALL PRIVILEGES ,WITH GRANT OPTION 可以給別的使用者授權~
Please keep refueling and don't slack off.