ubuntu

Ubuntu MariaDB使用教程大全

小樊
48
2025-10-12 06:25:38
栏目: 云计算

Ubuntu MariaDB使用教程大全

一、安装MariaDB

1. 更新系统

在安装前,确保系统软件包为最新版本,避免依赖冲突:

sudo apt update && sudo apt upgrade -y

2. 安装MariaDB Server

使用Ubuntu官方软件源安装MariaDB(默认版本较新,无需额外添加仓库):

sudo apt install mariadb-server -y

安装完成后,MariaDB服务会自动启动

3. 验证安装

通过以下命令检查MariaDB版本,确认安装成功:

mariadb --version
# 示例输出:mariadb  Ver 15.1 Distrib 10.6.12-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper

二、安全配置

MariaDB自带mysql_secure_installation脚本,用于强化数据库安全性,必须执行

sudo mysql_secure_installation

按提示完成以下配置(建议选择默认值):

  1. 设置root密码:若未在安装时设置,输入强密码(包含大小写字母、数字和符号);
  2. 移除匿名用户:避免未授权访问;
  3. 禁止root远程登录:防止黑客通过root账户远程控制数据库;
  4. 删除测试数据库:测试数据库无实际用途,删除可降低安全风险;
  5. 重新加载权限表:使上述配置立即生效。

三、基本操作

1. 登录MariaDB

使用root账户登录本地数据库:

sudo mysql -u root -p

输入密码后,进入MariaDB命令行界面(提示符为MariaDB [(none)]>)。

2. 创建数据库

创建名为mydb的数据库,并指定字符集为utf8mb4(支持emoji和多语言):

CREATE DATABASE mydb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3. 创建用户并授权

创建用户myuser(密码StrongPassword123!),并授予其对mydb数据库的所有权限:

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;  -- 刷新权限,使更改立即生效

若需允许用户远程访问,将localhost改为%(代表任意主机):

CREATE USER 'myuser'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%';
FLUSH PRIVILEGES;

4. 基础SQL操作

四、配置优化

1. 修改配置文件

MariaDB的主配置文件位于/etc/mysql/mariadb.conf.d/50-server.cnf,使用文本编辑器(如nano)修改:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

2. 允许远程访问

找到bind-address配置项,将其值从127.0.0.1(仅本地访问)改为0.0.0.0(允许所有IP访问):

[server]
bind-address = 0.0.0.0

修改后重启MariaDB服务

sudo systemctl restart mariadb

3. 性能优化配置

[mysqld] section中添加以下配置(根据服务器内存调整):

# InnoDB缓冲池大小(建议为物理内存的50-70%)
innodb_buffer_pool_size = 2G

# 启用慢查询日志(记录执行时间超过2秒的查询)
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow-queries.log
long_query_time = 2

# 查询缓存(适用于读多写少的场景)
query_cache_size = 64M
query_cache_type = 1

# 最大连接数(根据并发需求调整)
max_connections = 500

修改后重启服务:

sudo systemctl restart mariadb

五、远程访问设置

1. 授权远程用户

若需允许远程主机访问数据库,需为用户授予远程权限(以myuser为例):

GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%' IDENTIFIED BY 'StrongPassword123!';
FLUSH PRIVILEGES;

2. 配置防火墙

若服务器开启了ufw防火墙,需开放3306端口(MariaDB默认端口):

sudo ufw allow 3306/tcp
sudo ufw reload

3. 测试远程连接

使用远程数据库工具(如DBeaver、Navicat)或命令行工具,输入以下信息连接:

六、备份与恢复

1. 备份数据库

使用mysqldump工具备份mydb数据库:

mysqldump -u root -p mydb > mydb_backup.sql

输入root密码后,备份文件将保存在当前目录。

2. 恢复数据库

将备份文件恢复到数据库(需先创建目标数据库):

mysql -u root -p mydb < mydb_backup.sql

输入root密码后,数据将恢复到mydb数据库。

七、服务管理

1. 启动服务

sudo systemctl start mariadb

2. 停止服务

sudo systemctl stop mariadb

3. 重启服务

sudo systemctl restart mariadb

4. 查看服务状态

sudo systemctl status mariadb

若服务运行正常,将显示active (running)

八、常见问题排查

1. 连接被拒绝

2. 忘记root密码

九、最佳实践

1. 定期备份

设置cron任务,每天凌晨自动备份数据库:

crontab -e

添加以下内容(每天凌晨2点备份mydb数据库):

0 2 * * * mysqldump -u root -p'YourRootPassword' mydb > /path/to/backup/mydb_$(date +\%F).sql

2. 监控性能

3. 安全加固

0
看了该问题的人还看了