08、Access denied for user 'root'@'192.168.1.16' to database 'test_db'

問題描述:

程序在本地可以正常連接 mysql 數據庫,但是,通過 maven 打包成  可以執行的 jar 部署到 linux 環境上,啓動就拋:

2019-12-17 15:07:34 [ERROR] - method:
com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:660)- % -- [dataSource init error] -- % 
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:
 Access denied for user 'root'@'192.168.1.16' to database 'test_db'

遇到問題,先別慌。查看錯誤日誌,看錯誤日誌說了什麼。

Access denied for user 'root'@'192.168.1.16' to database 'test_db'

翻譯成中文就是:拒絕用戶'root'@'192.168.1.16' 訪問test_db數據庫。

爲什麼會拒絕 root 訪問呢?

有拒絕訪問關鍵字,說明肯定和權限扯得上關係。那麼,我們查看下 MySQL 用戶授予的權限看看:

SELECT host,user,Grant_priv,Super_priv FROM mysql.user;

 可以,發現 192.168.1.16 主機的 Grant_priv  和 Select_priv 操作權限都是 N 

Grant_priv 關鍵字意思:確定用戶是否可以將已經授予給該用戶自己的權限再授予其他用戶。

例如,如果用戶可以插入、選擇和刪除foo數據庫中的信息,並且授予了GRANT權限,則該用戶就可以將其任何或全部權限授予系統中的任何其他用戶。

Select_priv 關鍵字意思:確定用戶是否可以通過SELECT命令選擇數據。

那麼,我們可以給 192.168.1.16 這個主機設置操作權限:

UPDATE mysql. USER SET
 Grant_priv = 'Y',
 Super_priv = 'Y'
WHERE
 HOST = '192.168.1.16';

FLUSH PRIVILEGES;

此時,jar 應用程序重啓再訪問正常了。

 

資料參考:https://www.cnblogs.com/felixzh/p/10792082.html 

發佈了16 篇原創文章 · 獲贊 0 · 訪問量 7851
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章