1、問題描述
今天使用MySQL新建了一個用戶,此處假設為test用戶,用來作為某安裝軟件的配置用戶(會新建大量的表及視圖)
mysql> create user 'test'@'%' identified by '123456';
並將mysql數據庫授權給test
mysql> grant select,delete,update,create,drop on mysql.* to test@"%" identified by "123456";
以上均使用root用戶執行
在軟件中配置jdbc連接時,報錯如題:access denied for user 'test'@'%' to database 'mysql'。
2、問題分析
考慮是權限不足的問題被拒絕訪問,查看了一些網上的回答,測試如下方法可行
3、解決方案
查看user表中root用戶及test用戶的權限對比
mysql> select Grant_priv,Super_priv from mysql.user where user in ('root','test');
發現root用戶這兩個value都是'Y',而test用戶都是'N'
將test用戶這兩個value都更新為'Y'
mysql> update mysql.user set Grant_priv='Y',Super_priv='Y' where user = 'test' and host = '%';
而后重啟mysql服務即可