您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Ubuntu下怎么安装配置MariaDB
## 前言
MariaDB作为MySQL的重要分支,因其开源、高性能和完全兼容MySQL的特性,已成为众多开发者和企业的首选数据库解决方案。本文将详细介绍在Ubuntu系统上从零开始安装、配置MariaDB的全过程,涵盖安全加固、用户管理、性能优化等实用内容,帮助您快速搭建生产级数据库环境。
---
## 一、MariaDB简介与技术背景
### 1.1 MariaDB与MySQL的关系
MariaDB由MySQL原开发团队打造,采用GPLv2开源协议,完全兼容MySQL的API和命令。其显著优势包括:
- 默认使用更高效的Aria存储引擎
- 支持并行复制和Galera集群
- 包含更多性能优化和扩展功能
- 社区驱动的发展模式
### 1.2 版本选择建议
- Ubuntu 20.04 LTS默认提供10.3版本
- Ubuntu 22.04 LTS默认提供10.6版本
- 生产环境建议使用LTS版本(当前最新为10.11 LTS)
---
## 二、安装前的系统准备
### 2.1 系统更新与依赖检查
```bash
sudo apt update && sudo apt upgrade -y
sudo apt install software-properties-common dirmngr apt-transport-https -y
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mirrors.aliyun.com/mariadb/repo/10.11/ubuntu $(lsb_release -cs) main'
sudo apt update
sudo apt install mariadb-server mariadb-client -y
systemctl status mariadb
# 输出应显示"active (running)"
sudo mysql_secure_installation
执行后将依次设置: 1. root密码强度验证 2. 匿名用户删除 3. 禁止root远程登录 4. 移除test数据库 5. 立即应用权限变更
/etc/mysql/my.cnf
包含以下关键配置:
[mysqld]
datadir = /var/lib/mysql
bind-address = 127.0.0.1 # 生产环境应改为服务器IP
default-storage-engine = InnoDB
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# 内存优化(根据服务器配置调整)
innodb_buffer_pool_size = 1G # 建议为物理内存的50-70%
key_buffer_size = 256M
query_cache_size = 0 # MariaDB 10.1.7+建议禁用
sudo mkdir /etc/mysql/conf.d/
echo "[mariadb]" | sudo tee /etc/mysql/conf.d/custom.cnf
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mariadb-slow.log
long_query_time = 2
log_error = /var/log/mysql/mariadb-error.log
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
CREATE DATABASE wordpress_db;
CREATE USER 'wp_user'@'%' IDENTIFIED BY 'Wp@SecurePass456';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON wordpress_db.* TO 'wp_user'@'%';
SHOW GRANTS FOR 'wp_user'@'%';
SHOW STATUS LIKE 'Threads_connected';
SHOW VARIABLES LIKE 'max_connections'; # 建议设置为Threads_connected的120%
innodb_flush_log_at_trx_commit = 2 # 平衡性能与可靠性
innodb_log_file_size = 256M
innodb_read_io_threads = 8
innodb_write_io_threads = 4
sudo mysqlcheck --all-databases --optimize --auto-repair
sudo mysqldump -u root -p --all-databases --single-transaction > full_backup_$(date +%F).sql
[mysqld]
log_bin = /var/log/mysql/mariadb-bin
expire_logs_days = 7
#!/bin/bash
BACKUP_DIR="/var/backups/mysql"
find $BACKUP_DIR -type f -mtime +30 -delete
mysqldump -u backup_user -p'password' --all-databases | gzip > $BACKUP_DIR/db_$(date +%F_%H-%M).sql.gz
连接数耗尽:
SET GLOBAL max_connections = 500;
内存泄漏:
sudo journalctl -u mariadb --no-pager -n 50
EXPLN ANALYZE SELECT * FROM large_table WHERE condition;
[galera]
wsrep_on = ON
wsrep_provider = /usr/lib/galera/libgalera_smm.so
wsrep_cluster_address = "gcomm://node1_ip,node2_ip"
binlog_format = ROW
sudo apt install maxscale
sudo ufw allow from 192.168.1.0/24 to any port 3306
INSTALL SONAME 'server_audit';
SET GLOBAL server_audit_events = 'CONNECT,QUERY';
通过本文的详细指导,您已完成从基础安装到生产级配置的全过程。建议定期检查MariaDB官方安全公告,保持版本更新。对于大型企业部署,应考虑结合ProxySQL、HAProxy等工具构建高可用架构。
延伸学习资源: - MariaDB官方文档 - Percona性能优化指南 - MySQL vs MariaDB特性对比 “`
注:实际字符数约3800字(含代码块)。如需精确控制字数,可适当增减配置示例或优化建议部分的内容。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。