在MySQL中,授權(quán)是一項重要的功能。通過授權(quán),我們可以指定哪些用戶可以訪問哪些數(shù)據(jù)庫、哪些數(shù)據(jù)表以及可以進行哪些操作。但是,在進行授權(quán)時,有時會出現(xiàn)某些問題,比如授權(quán)成功后,DBA用戶卻無法進行連接。
GRANT ALL PRIVILEGES ON *.* TO '用戶名'@'localhost' IDENTIFIED BY '密碼'; FLUSH PRIVILEGES;
上面是一個常見的MySQL授權(quán)語句,其中用戶名和密碼分別是指定的賬戶名和密碼。在執(zhí)行這個語句后,我們可能會出現(xiàn)無法連接的情況。這是因為MySQL中授權(quán)的權(quán)限是按照順序進行匹配的。如果前面的授權(quán)語句已經(jīng)匹配成功,后面的授權(quán)語句就會被忽略。
因此,如果我們給一個用戶授權(quán)的權(quán)限不包含連接權(quán)限,那么這個用戶就無法進行連接。解決這個問題的方法很簡單,我們只需要在授權(quán)語句中加上連接權(quán)限即可:
GRANT ALL PRIVILEGES ON *.* TO '用戶名'@'localhost' IDENTIFIED BY '密碼' WITH GRANT OPTION; FLUSH PRIVILEGES;
這次,在授權(quán)語句中加上了WITH GRANT OPTION選項,即授予了連接權(quán)限。這樣,DBA用戶就可以進行連接了。