Access denied for user "* * *"@"* * *" (using password: YES)

前言

截止到上週週末,已經開始對數據庫進行配置了,在這周便開始對數據庫進行與後臺的鏈接操做,相比php來講,springboot鏈接數據庫麻煩了好多,還要本身配置文件什麼的,好在老師給出了相關文檔,可是,全英文的文檔對我來講真的不是很友好,好在具體的配置文件仍是能看懂的,而後就根據文檔指導進行配置。
Accessing data with MySQLphp

問題

image.png


當咱們啓動前臺時,咱們想要的效果是這樣的,但實際的結果是:html


image.png

打開控制檯看一下報錯信息,加載信息的時候出錯誤了,並且是後臺的問題java

image.png

在進行刷新以後,IDEA也出現了報錯的狀況:
image.png
固然了,最重要的就是第一句:java.sql.SQLException: Access denied for user 'springuse'@'localhost' (using password: YES) (java.sql.SQLException:拒絕用戶「springuse」@「localhost」的訪問(使用密碼:YES))
這樣看來應該是數據庫那邊出了問題mysql

解決

在文檔中,咱們瞭解到,要在 src/main/resources/application.properties 這個文檔中添加以下代碼:spring

spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=jdbc:mysql://${MYSQL_HOST:localhost}:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=ThePassword

當時想也沒想就粘貼過去了,調了半天也不行,用瀏覽器把文檔翻譯了一遍,意思表達的愈來愈亂,英文的也看不懂,後來就找學長問了問,而後才知道要先建立一個用戶,而且數據庫名稱要與本身數據庫的對應,文檔中的代碼是根據實例來寫的,因此對我來講,不適用。sql


3306/db_example中的db_example就是數據庫的名字,個人數據庫名字爲yunzhi_spring_boot,那麼就是3306/yunzhi_spring_boot,
至於新建用戶,文檔中也給出了代碼:數據庫

mysql> create user 'springuser'@'%' identified by 'ThePassword'; -- Creates the user
mysql> grant all on db_example.* to 'springuser'@'%'; -- Gives all privileges to the new user on the newly created database

而後就在數據庫中「新建查詢」,'ThePassword'修改成本身的密碼,點擊運行代碼
image.png
發現表單裏多了一個用戶(mysql下的user表單),OK,問題解決了,前臺顯示了數據庫中的內容,後臺也不報錯了。
image.pngubuntu

新的問題

每次關機後再開機,這個系統總能給我帶點驚喜,在次日開機啓動程序,打算繼續往下進行時,又出現了一樣的錯誤,按照昨天晚上的步驟又從新來了一遍,無濟於事,仍是不成,而後又請教了學長。瀏覽器

解決

屏幕截圖_22.png
仍是user那張表,咱們會發現,新建用戶的權限都是「N」,也就是NO,沒有權限,後來學長查了查,要賦予權限,須要新建一個超級用戶,這個超級用戶便擁有全部的權限。springboot

grant all privileges on *.* to springuser@'localhost' identified by "×××" with grant option;

使用該語句建立一個用戶名爲springuser,密碼爲×××,做用域爲localhost 的超級用戶,成功,以後屢次重啓關閉也沒有出現錯誤
MySQL之權限管理

總結

剛接觸一種新事物,不免會不適應,有時會以爲這種東西怎麼會有人用,但時間久了就會發現很奇妙,頗有趣,就像個人ubuntu系統同樣,雖然它常常翻車,可是相比Windows來講,它真的頗有魅力,相信spring也不會讓我失望吧。

相關文章
相關標籤/搜索