Ubuntu MariaDB使用教程有哪些
小樊
42
2025-12-30 08:37:01
Ubuntu 上 MariaDB 使用教程精选
一 安装与初始化
- 更新索引并安装:sudo apt update && sudo apt install mariadb-server -y;安装完成后服务通常会自动启动。
- 验证安装与版本:mariadb --version;登录测试:sudo mysql -u root -p。
- 运行安全初始化:sudo mysql_secure_installation,按提示设置 root 密码、移除匿名用户、禁止 root 远程登录、删除测试库并刷新权限。
- 服务管理:sudo systemctl start|stop|restart|status mariadb;如需开机自启:sudo systemctl enable mariadb。
- 版本选择与更新:Ubuntu 官方仓库版本可能偏旧;如需更新版本,可添加 MariaDB 官方 APT 仓库后安装指定版本(如 10.6)。
二 安全加固与远程访问
- 安全基线:始终执行 mysql_secure_installation;生产环境建议仅允许 root 从 localhost 登录,按需创建具备最小权限的业务账号。
- 远程访问步骤:
- 创建可远程用户(示例):CREATE USER ‘myuser’@‘%’ IDENTIFIED BY ‘StrongPassword123!’; GRANT ALL PRIVILEGES ON mydb.* TO ‘myuser’@‘%’; FLUSH PRIVILEGES;
- 修改绑定地址:编辑 /etc/mysql/mariadb.conf.d/50-server.cnf,将 bind-address 设为 0.0.0.0;
- 开放防火墙:sudo ufw allow 3306/tcp && sudo ufw reload;
- 远程连接测试:使用主机 IP、端口 3306、用户名与密码连接。
- 加固建议:仅开放可信 IP、启用 SSL/TLS 加密传输、定期更新 MariaDB 版本与补丁。
三 常用管理与 SQL 入门
- 登录与基础:mysql -u root -p;查看版本:SELECT VERSION(); 查看库:SHOW DATABASES;
- 库与用户:
- 建库(UTF8MB4):CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 建用户并授权:CREATE USER ‘myuser’@‘localhost’ IDENTIFIED BY ‘pwd’; GRANT ALL PRIVILEGES ON mydb.* TO ‘myuser’@‘localhost’; FLUSH PRIVILEGES;
- 表与数据:
- 建表:CREATE TABLE students (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, age INT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
- 增删改查:INSERT/SELECT/UPDATE/DELETE 常规用法;
- 运维常用:mysqladmin version、mysqladmin create/drop 等命令行工具可快速完成基础管理。
四 备份恢复与性能优化
- 备份与恢复:
- 备份单库:mysqldump -u root -p mydb > mydb_backup.sql;
- 恢复:mysql -u root -p mydb < mydb_backup.sql;
- 定时备份示例(crontab):0 2 * * * mysqldump -u root -p’YourRootPassword’ mydb > /path/to/backup/mydb_$(date +%F).sql。
- 性能与监控:
- 配置优化(示例,按内存与并发调整):
- InnoDB 缓冲池:innodb_buffer_pool_size = 2G(建议为物理内存的 50–70%);
- 慢查询日志:slow_query_log = 1;slow_query_log_file = /var/log/mysql/slow-queries.log;long_query_time = 2;
- 最大连接数:max_connections = 500;
- 工具与日志:使用 mysqltuner 定期体检;分析慢查询日志定位瓶颈。
五 常见问题与进阶
- 常见问题速解:
- 连接被拒绝:检查服务是否运行(systemctl status mariadb)、防火墙是否放行 3306、bind-address 是否为 0.0.0.0;
- 忘记 root 密码:停止服务,使用 mysqld_safe --skip-grant-tables 启动,登录后 ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘NewPass’; 重启服务;
- WSL 环境:部分 Ubuntu/WSL 镜像中 root 默认使用 auth_socket 插件,可能无需密码即可 sudo mysql 登录;如需密码登录,需调整认证方式后再用 mysql -u root -p。
- 进阶方向:主从复制、SSL/TLS 加密、按业务拆分账号与权限、定期审计与更新。