MySQL創建遠程數據庫新用戶,開啓遠程連接訪問
每一個項目都有一個數據庫,如果都用同一個MySQL用戶來訪問各個數據庫,這是非常危險的,一旦一個項目被黑,那它的數據庫賬號密碼還能用來訪問其他數據庫,簡直太危險了⊙﹏⊙|||😨所以爲了數據庫的安全考慮,最好是爲每一個數據庫單獨創建一個用戶,每個用戶只能訪問它自己項目要用的數據庫。
一、 創建用戶
先登錄遠程服務器,用root進入MySQL裏進行操作。
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
- username:你將創建的用戶名
- host:指定該用戶在哪個主機上可以登陸,如果是本地用戶可用localhost,如果想讓該用戶可以從任意遠程主機登陸,可以使用通配符%
- password:該用戶的登陸密碼,密碼可以爲空,如果爲空則該用戶可以不需要密碼登陸服務器
二、授權:
GRANT privileges ON databasename.tablename TO 'username'@'host'
- privileges:用戶的操作權限,如SELECT,INSERT,UPDATE等,如果要授予所的權限則使用ALL
- databasename:數據庫名
- tablename:表名,如果要授予該用戶對所有數據庫和表的相應操作權限則可用*表示,如
*.*
三、本地登錄連接測試、遠程登錄連接測試:
- 直接在遠程主機上進行本地登錄測試:
mysql -u username -p
然後輸入密碼,如果成功登錄進入,說明用戶創建成功。
- 換一個主機,測試遠程登錄:
mysql -u username -h host -P port -p
- username:你剛纔創建的用戶名
- host:你的遠程數據庫的主機域名或者IP地址
- port爲端口號,通常是3306
注意:這個測試的主機必須本地有MySQL軟件纔可以,要不然mysql命令無法執行。
四、我的操作:
CREATE USER 'jal'@'%' IDENTIFIED BY '123456';
GRANT ALL ON jalprodatabase.* TO 'jal'@'%';
這就創建好了,我創建了一個MySQL用戶,用戶名是jal,密碼是123456,我可以在任意主機上連接這個遠程的jalprodatabase數據庫。
換個電腦測試下:
mysql -u jal -h www.jiailing.com -P 3306 -p
回車輸入密碼123456即可登錄。