在 Web 項目中,我們需要使用到遠程資料庫,開發階段也需要連接並查看資料庫的狀況。騰訊雲、阿裡雲等雲平臺提供了遠程資料庫,可直接使用;當然也可以自己在部署 Web 的伺服器上安裝資料庫,將其配置為遠程資料庫,供 Web 應用使用。 本篇介紹如何在 Linux 伺服器上安裝 MySQL 資料庫,並... ...
在 Web 項目中,我們需要使用到遠程資料庫,開發階段也需要連接並查看資料庫的狀況。騰訊雲、阿裡雲等雲平臺提供了遠程資料庫,可直接使用;當然也可以自己在部署 Web 的伺服器上安裝資料庫,將其配置為遠程資料庫,供 Web 應用使用。
本篇介紹如何在 Linux 伺服器上安裝 MySQL 資料庫,並設置為可遠程連接。
在 Ubuntu 上安裝 MySQL
為安裝最新版本的 MySQL,我們可以先更新一下 apt 管理的資源包。
以 sudo 用戶身份登錄,執行以下命令:
sudo apt update
待更新完畢後,輸入以下命令,安裝 MySQL:
sudo apt install mysql-server
安裝完成後,MySQL 服務會自動啟動。想驗證 MySQL 正在運行,輸入:
sudo systemctl status mysql
輸出如下圖,即表示已啟動。
開啟遠程連接許可權
編輯 MySQL 配置文件
預設情況下,MySQL 資料庫僅監聽本地連接。若想允許遠程連接資料庫,首先需要修改配置文件,讓 MySQL 可以監聽遠程固定 IP 或所有遠程 IP。
配置文件 mysqld.cnf
路徑一般為 /etc/mysql/mysql.conf.d/mysqld.cnf
。
輸入以下命令打開編輯:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到 bind-address
一行,預設該值為 127.0.0.1,僅監聽本地連接。我們將其改為遠程連接 IP 可訪問,可以使用通配符 IP 地址 0.0.0.0
,也可以是固定 IP,僅允許指定 IP 連接。這裡我修改為 0.0.0.0
,允許所有 IP 地址訪問。
在某些 MySQL 版本的配置文件中,沒有
bind-address
一行,在如上圖的合適位置上添加即可。
更改後,保存並退出編輯器(使用 Ctrl+X 保存並退出)。後重啟 MySQL 服務,使新配置生效。
sudo systemctl restart mysql
創建 MySQL 用戶
以 sudo 許可權進入 MySQL 服務:
sudo mysql
進入 MySQL 後,創建一個可遠程連接 MySQL 的用戶,並設置為使用密碼作為認證方式。
CREATE USER 'zewan'@'%' IDENTIFIED WITH mysql_native_password BY 'zewan1234';
上述命令中,%
表示 IP 任意,@
前的用戶名和 BY
後面的密碼修改為自己的信息。
執行完畢後,使用下列命令可以查看到所有的 user,包括我們新建的:
SELECT DISTINCT CONCAT('User: ''', user, '''@''', host, ''';') AS quert FROM mysql.user;
接下來,我們賦予該用戶擁有所有資料庫的訪問許可權,使其成為新的獨立管理用戶:
GRANT ALL PRIVILEGES ON *.* TO 'zewan'@'%' WITH GRANT OPTION;
最後,刷新 MySQL 系統許可權相關表,更新緩存,並退出 MySQL。
FLUSH PRIVILEGES;
EXIT;
遠程連接 MySQL 資料庫
命令行遠程訪問
命令格式如下:
mysql -u <username> -h <mysql_server_ip> -p
Jetbrains 家族 Database 連接
在 IDEA、Pycharm 等軟體中,內置 Database 訪問插件,具備可視化資料庫表的功能,一般在右側任務欄點擊展開。
點擊加號,選擇 MySQL 作為 Data Source。
在彈出框中,填入遠程資料庫IP(Host)、用戶名(User)、密碼(Password),後點擊 Test connection 嘗試連接。出現下圖成功標識,即表示可成功連接資料庫,隨後點擊應用(Apply)即可。
隨後,軟體中會出現 console,我們可以在這裡輸入 MySQL 語句並點擊綠色啟動按鈕執行命令,同時可雙擊右側彈出欄中的資料庫表,查看信息。
附上 MySQL 創建資料庫,並指定編碼 UTF8 的命令:
CREATE DATABASE `mydb` CHARACTER SET utf8 COLLATE utf8_general_ci;