MySQL 数据库初始化指南
适用场景:使用外部 MySQL 数据库而非 Docker 内嵌数据库时,需提前手动创建数据库和用户。
查询现有数据库和用户
以 MySQL root 或具有创建用户权限的账号登录后执行:
sql
-- 查看所有数据库
SHOW DATABASES;
-- 查看所有用户
SELECT user, host FROM mysql.user;创建数据库和用户
以 MySQL root 或具有创建用户权限的账号登录后执行:
sql
-- 1. 创建数据库(utf8mb4 字符集)
CREATE DATABASE IF NOT EXISTS ssh_upgrade
DEFAULT CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
-- 2. 创建用户(% 表示允许任意 IP 连接,生产环境建议限制 IP)
CREATE USER IF NOT EXISTS 'ssh_upgrade'@'%'
IDENTIFIED BY 'your_password';
-- 3. 授权
GRANT ALL PRIVILEGES ON ssh_upgrade.* TO 'ssh_upgrade'@'%';
FLUSH PRIVILEGES;
-- 4. 验证
SHOW DATABASES LIKE 'ssh_upgrade';
SELECT user, host FROM mysql.user WHERE user = 'ssh_upgrade';连接参数
创建完成后,将以下参数填入服务端部署的环境变量中:
方式一:env.sh / .env 配置文件
bash
export DB_DRIVER=mysql
export DB_HOST=127.0.0.1 # 改为实际数据库地址
export DB_PORT=3306
export DB_USER=ssh_upgrade
export DB_PASSWORD=your_password # 改为实际密码
export DB_NAME=ssh_upgrade方式二:docker-compose.yml 环境变量
yaml
environment:
- DB_DRIVER=mysql
- DB_HOST=127.0.0.1 # 改为实际数据库地址
- DB_PORT=3306
- DB_USER=ssh_upgrade
- DB_PASSWORD=your_password # 改为实际密码
- DB_NAME=ssh_upgrade快速验证连接
bash
mysql -h 127.0.0.1 -P 3306 -u ssh_upgrade -p ssh_upgrade -e "SELECT 1"输入密码后返回 1 即表示连接正常。
安全建议
限制 IP 访问
生产环境将 '%' 替换为具体 IP 段:
sql
-- 仅允许 192.168.1.x 网段
CREATE USER IF NOT EXISTS 'ssh_upgrade'@'192.168.1.%'
IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON ssh_upgrade.* TO 'ssh_upgrade'@'192.168.1.%';
-- 仅允许本机
CREATE USER IF NOT EXISTS 'ssh_upgrade'@'localhost'
IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON ssh_upgrade.* TO 'ssh_upgrade'@'localhost';最小权限
如不需要 ALL PRIVILEGES,可按需授予:
sql
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, INDEX, DROP
ON ssh_upgrade.* TO 'ssh_upgrade'@'%';强密码
密码建议 16 位以上,包含大小写字母、数字和特殊字符。
首次启动提示
数据库创建完成后启动服务端,首次访问管理平台时会自动跳转至初始化引导页,在 Web 界面设置管理员账号即可。
如因 IP 白名单无法登录,可在启动时添加
--unlock参数解除限制:bashdocker compose exec ssh-upgrade-web /app/server --unlock 或 /usr/local/bin/ssh-upgrade-server --unlock