1. 程式人生 > >Mysql連線許可權總結

Mysql連線許可權總結

前言:最近專案在做驗收,驗收過程中遇到不少大大小小的問題甚是慌張,今天這個帖子針對mysql連線許可權做下總結

描述:我們系統有個資料來源連線功能,可以輸入資料庫連線資訊,拉取資料庫的元資料資訊,問題在測試人員在輸入IP的方式等資訊時連線時,卻報錯了

Access denied for user 'xncui01'@'localhost' (using password: YES)

,然後測試人數把資料IP換成127.0.0.1確可以連線成功。當時自己對mysql的許可權不是很瞭解,通過網上查貼終於找出問題點,下面開始今天總結內容。

問題分析:看到上面的報錯資訊,我們知道是使用者許可權不足導致的

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

123 123

我們通過頁面連線資料來源相當於mysql -uroot -proot -h19.63.11.93這種方式來連線的,其實這種方式的連線mysql會在自己的維護的hosts表裡去反向對映主機名的,所以通過該圖知道該使用者是缺少主機名許可權的

mysql -uxncui02 -p123456 -h10.161.0.93

ERROR 1045 (28000): Access denied for user 'xncui02'@'gza05-104-bigdata-161000093.ctyun.local' (using password: YES)

緊接著我們建立第二個賬戶

CREATE USER 'xncui01'@'127.0.0.1' IDENTIFIED BY '123456';
CREATE USER 'xncui01'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'xncui01'@'gza05-104-bigdata-161000093.ctyun.local' IDENTIFIED BY '123456';

mysql -uxncui01 -p123456 -h10.161.0.93

Welcome to the MySQL monitor. Commands end with ; or \g.