在首次安裝Mysql後,一般需要在遠程的機器上進行相關操作,而使用內置的ROOT用戶登錄時,往往因爲沒有權限而導致無法登錄。當然也出於安全考慮,不允許非本機直接訪問ROOT用戶,但對於數據庫管理員來說,極爲不便。以下通過授權的方式實現ROOT用戶的遠程訪問。
1.直接授權
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' ;
- ON後面的第一個*代表數據庫名,"*"指所有數據庫;
- ON後面的第二個*代表數據庫表名,"*"指所有數據庫下所有表;
- “ROOT”代表用戶名,不能爲空;
- “%”代表任何主機,如果不指定,則默認爲“%”。
這樣授權其實是不嚴謹的,後面詳細分析
2.刷新權限
FLUSH PRIVILEGES;
3.查詢驗證
SELECT USER,AUTHENTICATION_STRING,HOST FROM USER;
4.繼續分析
查詢並對比user表,發現會新增一個用戶,且新增的用戶沒有Grant_oriv權限,什麼回事,又怎麼處理呢?
個人建議的做法爲:
1.直接修改原有ROOT用戶的HOST屬性即可;
2.或者在語句後面添加WITH GRANT OPTION;