MySQL / MariaDB
MySQL 是全球最廣泛使用的開源關聯式資料庫之一,而 MariaDB 是其完全相容的社群分支。Piora 同時支援兩者,你可以根據偏好選擇。
MySQL vs MariaDB
Section titled “MySQL vs MariaDB”| 特性 | MySQL | MariaDB |
|---|---|---|
| 維護者 | Oracle | 社群(原 MySQL 創始人) |
| 授權 | GPL + 商業 | GPL |
| 相容性 | — | 完全相容 MySQL |
| 特色 | 穩定、廣泛支援 | 更多開源功能、效能改進 |
- 在控制面板進入「資料庫」頁面
- 選擇「MySQL」或「MariaDB」
- 選擇版本
- 設定參數:
| 參數 | 說明 |
|---|---|
| Root 密碼 | MySQL root 帳號密碼 |
| 資料庫名稱 | 初始建立的資料庫 |
| 使用者名稱 | 應用使用的帳號 |
| 使用者密碼 | 應用帳號的密碼 |
# MySQL 連線字串mysql://user:password@mysql-container:3306/myapp
# MariaDB 連線字串(格式相同)mysql://user:password@mariadb-container:3306/myapp常見框架設定
Section titled “常見框架設定”// Node.js (mysql2)const mysql = require('mysql2/promise');const connection = await mysql.createConnection(process.env.DATABASE_URL);# Python (PyMySQL)import pymysqlconnection = pymysql.connect( host='mysql-container', user='user', password='password', database='myapp')// PHP (PDO)$pdo = new PDO( 'mysql:host=mysql-container;dbname=myapp', 'user', 'password');根據 VPS 規格調整以下 MySQL 參數:
# 緩衝池大小(建議為可用記憶體的 50-70%)innodb_buffer_pool_size = 512M
# 日誌檔案大小innodb_log_file_size = 256M
# 最大連線數max_connections = 150
# 查詢快取(MySQL 8.0 已移除)# MariaDB 仍支援query_cache_size = 64M資料匯入與匯出
Section titled “資料匯入與匯出”# 匯出單一資料庫mysqldump -u root -p myapp > backup.sql
# 匯出所有資料庫mysqldump -u root -p --all-databases > all_backup.sql# 匯入資料庫mysql -u root -p myapp < backup.sql確認資料庫使用 UTF-8 字元集:
-- 建立資料庫時指定字元集CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 檢查現有資料庫字元集SHOW CREATE DATABASE myapp;如果出現 Too many connections 錯誤:
- 增加
max_connections設定 - 檢查應用是否正確關閉資料庫連線
- 使用連線池管理連線