在MySQL中創建用戶並賦予遠程登錄權限
- 517字
- 3分鐘
- 2024-07-20
在MySQL中,創建一個可以遠程訪問的用戶,並授予其對特定數據庫的權限是一個常見的需求。本文將詳細介紹如何實現這一操作。
步驟一:登錄到MySQL
首先,以管理員身份(例如 root 用戶)登錄到 MySQL:
1mysql -u root -p
步驟二:創建數據庫並設置編碼
創建名為 project
的數據庫,並使用 utf8mb4
編碼:
1CREATE DATABASE project CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
步驟三:創建用戶並允許從任何 IP 地址訪問
創建名為 myuser
的用戶,並允許其從任何 IP 地址訪問。設置密碼,例如 myuser_password
:
1CREATE USER 'myuser'@'%' IDENTIFIED BY 'myuser_password';
步驟四:授予用戶權限
授予 myuser
用戶對 project
數據庫的所有權限:
1GRANT ALL PRIVILEGES ON project.* TO 'myuser'@'%';
步驟五:刷新權限
刷新權限表以使更改生效:
1FLUSH PRIVILEGES;
完整的 SQL 腳本
以下是完整的 SQL 腳本,涵蓋了創建數據庫、用戶並授予權限的全部步驟:
1-- 創建數據庫並設置編碼2CREATE DATABASE project CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;3
4-- 創建用戶並設置允許從任何 IP 地址訪問5CREATE USER 'myuser'@'%' IDENTIFIED BY 'myuser_password';6
7-- 授予用戶權限8GRANT ALL PRIVILEGES ON project.* TO 'myuser'@'%';9
10-- 刷新權限11FLUSH PRIVILEGES;
刪除已有的用戶
如果已經存在名為 myuser
的用戶,並且想要重新創建,可以先刪除已有用戶:
1DROP USER 'myuser'@'localhost';2DROP USER 'myuser'@'%';3
4FLUSH PRIVILEGES;
配置 MySQL 允許遠程訪問
確保 MySQL 配置文件允許遠程訪問。編輯 MySQL 配置文件(如 /etc/mysql/mysql.conf.d/mysqld.cnf
或 /etc/my.cnf
),找到以下行:
1bind-address = 127.0.0.1
將其註釋掉或修改為:
1bind-address = 0.0.0.0
然後,重新啟動 MySQL 服務:
1sudo systemctl restart mysql
配置防火牆
如果你的服務器有防火牆,請確保允許 MySQL 端口(通常是 3306)通過防火牆。比如使用 ufw
:
1sudo ufw allow 3306/tcp
通過以上步驟,你可以成功創建一個可以遠程訪問 MySQL 數據庫的用戶,並授予其對特定數據庫的操作權限。