首頁 > 軟體

MySQL資料庫遠端存取許可權設定方式

2023-11-22 14:01:48

MySQL資料庫遠端存取許可權設定

對於初學者小夥伴來說,我們安裝mysql到本地服務,再用一些圖形化工具連結。

一般情況下我們都能連結成功;但是、在模擬真實的環境中我們的資料庫不可能直接安裝在本地機器上,大多數是在雲伺服器上,這種情況我們的mysql也不是路邊大巴招手即停的,你還是要約的(先買票!);也就是你的帳號不允許從遠端登陸,只能在localhost登入,怎麼辦?

接下來給大家講解兩種簡單的方法、方法再簡單要先用管理員賬戶登入進去,這樣才可以修改

讓我們先登入上mysql

改表(當然我們要先知道表在哪,適用於整個資料庫)

  • show databases;#顯示所有資料庫
  • use mysql;#使用mysql資料庫
  • show tables;#找到這個user表

  • select * from user;#檢視該表所有資訊

我們能清楚的對應的主機;使用者以及使用者許可權

1、直接修改

update user set host = '%' where user = 'root';#更新root使用者的主機存取為任何值

2、加指定使用者以及指定許可權

insert into user(host,user) values('ip','user');#新增一個使用者user地址ip的無許可權使用者(可以插入新增使用者資訊時,附帶把許可權也查進去,執行時會有告警,因為表中有約束,不用深究)

新增成功,但是沒有許可權。

授權

  • 直接授權(mysql8.0版本會報錯,語法分割)
grant all privileges on *.* to 'user'@'ip' identified by '123456';#授權給主機為ip的user使用者開放,所有資料庫及對應表的所有許可權,並且密碼設定為123456(快速簡潔)
  • 直接授權(改-針對新版本)
create user ‘user'@‘ip' identified by ‘123456';#建立一個主機地址是ip登入密碼是123456的user使用者
grant all privileges on *.* to 'user'@'ip';#連結上一步,給他所有許可權

  • 指定授權
create user ‘mysql'@‘%' identified by ‘123456';#建立一個主機地址可以時任何地址的登入密碼是123456的mysql使用者(隨時隨地,在任何地方的進行登入操作)
grant select,create on myemployees.* to 'mysql'@'%';#設定mysql使用者只用myemployees庫的查,建立許可權

flush privilege;#重新整理下資料許可權

針對mysql8.0版本以上操作時會報錯無法連結;

8.0版本因為密碼規則和語法規則的改變,所以要再次設定

在相同情況下依次執行以下語句

alter user ‘mysql'@‘%' identified by ‘123456' passwore expire never;#修改加密規則
alter user ‘mysql'@‘%' identified by ‘123456' mysql_native_password by '123456';#再次重置密碼
flush privilege;#重新整理下資料許可權

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com