一、安装 MariaDB
1. 更新系统软件源
sudo apt update && sudo apt upgrade -y
2. 安装 MariaDB Server
sudo apt install mariadb-server -y
3. 验证安装
mariadb --version # 输出示例: mariadb Ver 15.1 Distrib 10.6.12-MariaDB...
二、基本安全配置
1. 运行安全脚本
sudo mysql_secure_installation
按提示完成以下配置:
-
设置 root 密码
-
移除匿名用户
-
禁止 root 远程登录
-
删除测试数据库
-
重新加载权限表
三、配置 MariaDB
1. 编辑配置文件
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
常用配置项:
[server] bind-address = 0.0.0.0 # 允许远程访问 port = 3306 # 监听端口 default_storage_engine = innodb character-set-server = utf8mb4 collation-server = utf8mb4_general_ci [mysqld] innodb_file_per_table = 1 max_connections = 500
2. 重启服务使配置生效
sudo systemctl restart mariadb sudo systemctl enable mariadb
四、数据库操作
1. 登录 MariaDB
sudo mysql -u root -p
2. 创建新数据库
CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
3. 创建用户并授权
CREATE USER 'myuser'@'%' IDENTIFIED BY 'StrongPassword123!'; GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%'; FLUSH PRIVILEGES;
五、防火墙配置(可选)
开放3306端口
sudo ufw allow 3306/tcp sudo ufw reload
六、管理命令
功能 | 命令 |
---|---|
启动服务 | sudo systemctl start mariadb |
停止服务 | sudo systemctl stop mariadb |
查看状态 | sudo systemctl status mariadb |
查看版本 | mysql -V |
备份数据库 | mysqldump -u root -p mydb > mydb_backup.sql |
七、远程连接测试
使用数据库工具(如DBeaver、Navicat)连接:
-
Host: 服务器IP地址
-
Port: 3306
-
Username: myuser
-
Password: StrongPassword123!
-
Database: mydb
八、常见问题排查
1. 连接被拒绝
-
检查防火墙设置
-
确认
bind-address
未设置为 127.0.0.1 -
验证用户权限中的主机限制(% 表示允许所有主机)
2. 忘记 root 密码
sudo systemctl stop mariadb sudo mysqld_safe --skip-grant-tables & mysql -u root # 在 MySQL 中执行: FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; exit sudo systemctl start mariadb
九、推荐优化配置
-
启用二进制日志(用于主从复制):
[mysqld] log-bin = /var/log/mysql/mariadb-bin server-id = 1
-
调整 InnoDB 缓冲池大小(建议为物理内存的 50-70%):
innodb_buffer_pool_size = 2G
十、总结
通过以上步骤,您已在 Ubuntu 22.04 上成功部署了 MariaDB 数据库服务。建议:
-
定期进行数据库备份
-
监控数据库日志(
/var/log/mysql/error.log
) -
及时应用安全更新(
sudo apt upgrade mariadb-server
)
官方文档参考:MariaDB Server Documentation - MariaDB Knowledge Base
注意:生产环境部署时请务必加强安全措施,建议:
使用 SSL 加密连接
限制访问 IP 范围
定期审计数据库权限
启用防火墙白名单策略