新公司使用的是寶塔來部署項目,war包。在部署運行時遇到了SQLException: Access denied for user 'xxx@xxxxx' (using password:yes) 重裝mysql無果之後。就只能慢慢解決,分享下我的解決過程。 # 一. 錯誤原因 正常來講,使用nav ...
新公司使用的是寶塔來部署項目,war包。在部署運行時遇到了SQLException: Access denied for user 'xxx@xxxxx' (using password:yes)
重裝mysql無果之後。就只能慢慢解決,分享下我的解決過程。
# 一. 錯誤原因
正常來講,使用navicat等連接工具 訪問/創建 資料庫時,就會遇到這種錯誤。錯誤原因無外乎這兩種。
## 1. 訪問的ip,賬號,密碼輸入錯誤
正常來講項目遇到這種錯誤,檢查下ip填寫是否正確,賬號密碼有沒有帶空格,就能解決這種問題。
## 2. 賬戶許可權不足
如果上述方法嘗試均未能解決,那就要進到伺服器看看賬戶許可權了。
### 1)查看mysql的所有用戶
使用 mysql -u root -p 命令,再輸入密碼登錄Mysql。
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user; 使用sql查詢user表中的用戶信息
如圖,查看自己的賬號的許可權。%是全部許可權。如果是沒有許可權可以賦值給這個用戶。
PS: 我遇到的問題是,這個mysql 的%許可權竟然不包括 localhost 本地訪問許可權。我要在安裝這個mysql的本地去訪問它,就必須單獨對其單獨賦值。
原因暫不明,猜測是版本問題。重裝過依舊存在這種情況。
### 2)查看許可權
show grants for '用戶名'@'%'; 查看用戶許可權 ,看看用戶是否有操作許可權。
### 3)賦予許可權
grant all privileges on main_db.* to 用戶名@'%' identified by '表名'; 如果沒有,則賦予其相應資料庫的操作許可權 。
flush privileges; 賦予完許可權後,別忘記刷新。然後再次查看這個用戶的許可權,就知道有沒有執行成功了。
PS:友情提示每一個 命令/sql 都要註意帶分號,
最普遍的還是,資料庫地址,賬號密碼不正確。大家多多細心。