跳到內容

MySQL / MariaDB

MySQL 是全球最廣泛使用的開源關聯式資料庫之一,而 MariaDB 是其完全相容的社群分支。Piora 同時支援兩者,你可以根據偏好選擇。

特性MySQLMariaDB
維護者Oracle社群(原 MySQL 創始人)
授權GPL + 商業GPL
相容性完全相容 MySQL
特色穩定、廣泛支援更多開源功能、效能改進
  1. 在控制面板進入「資料庫」頁面
  2. 選擇「MySQL」或「MariaDB」
  3. 選擇版本
  4. 設定參數:
參數說明
Root 密碼MySQL root 帳號密碼
資料庫名稱初始建立的資料庫
使用者名稱應用使用的帳號
使用者密碼應用帳號的密碼
Terminal window
# MySQL 連線字串
mysql://user:password@mysql-container:3306/myapp
# MariaDB 連線字串(格式相同)
mysql://user:password@mariadb-container:3306/myapp
// Node.js (mysql2)
const mysql = require('mysql2/promise');
const connection = await mysql.createConnection(process.env.DATABASE_URL);
# Python (PyMySQL)
import pymysql
connection = 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
Terminal window
# 匯出單一資料庫
mysqldump -u root -p myapp > backup.sql
# 匯出所有資料庫
mysqldump -u root -p --all-databases > all_backup.sql
Terminal window
# 匯入資料庫
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 錯誤:

  1. 增加 max_connections 設定
  2. 檢查應用是否正確關閉資料庫連線
  3. 使用連線池管理連線