香橙派数据库

这里写目录标题

一、MySQL/MariaDB(主流关系型数据库)

1. 安装MariaDB
2. 核心基本操作

(1)登录数据库
(2)数据库操作(创建/查看/删除)
(3)数据表操作(创建/查看/删除)
(4)数据操作(增/删/改/查)
(5)退出数据库

3. 其他常用操作

二、SQLite(轻量级嵌入式数据库,无需服务端)

1. 安装SQLite3
2. 核心基本操作

(1)创建/打开数据库文件
(2)数据库/表操作
(3)数据操作(增/删/改/查)
(4)退出SQLite
(5)其他常用命令

三、Orange Pi专属注意事项
完整脚本(mariadb_install.sh)
使用步骤

1. 创建脚本文件
2. 粘贴脚本并修改配置
3. 赋予执行权限
4. 运行脚本(必须加sudo)

脚本核心说明
注意事项
扩展:手动授权远程访问(可选)
一、立即验证登录(核心操作)
二、入门级数据库操作(必学)
三、关键注意事项
四、数据备份/恢复(重要)

1. 备份数据库(例:备份opi_db)
2. 恢复数据库(例:恢复到新库)

一、核心操作:创建自定义数据库+数据表

1. 创建业务数据库(例:名为`opi_project`的库,适配中文/特殊字符)
2. 切换到自定义数据库,创建数据表

二、数据操作:增/删/改/查(实战)

1. 插入测试数据
2. 查询数据(最常用)
3. 修改数据
4. 删除数据(谨慎!)

三、常用辅助操作

1. 退出数据库控制台
2. 清空表数据(保留表结构)
3. 删除数据表/数据库(谨慎!)

四、关键提示
核心解决思路
分步解决步骤

1. 先用sudo登录MariaDB(绕开密码认证)
2. 修改root用户的认证方式+重置密码
3. 退出MariaDB,验证密码登录
4. 更新Python程序中的密码配置
5. 重新运行测试程序

补充说明(为什么会出现这个问题?)
备选方案(创建专用数据库用户,更安全)
常见坑点排查
第一步:用兼容语法重置root密码(解决1064报错)

正常输出示例:

第二步:验证密码登录是否生效
第三步:更新Python程序的密码配置
第四步:重新运行测试程序
补充说明:MariaDB语法差异原因
若仍有问题的兜底方案

Orange Pi 上的数据库操作,最常用的是 MySQL/MariaDB(关系型数据库,兼容MySQL)和 SQLite(轻量级嵌入式数据库,无需服务端)。以下是这两种数据库的安装+核心基本操作,适配Orange Pi的Debian/Ubuntu系统(如Armbian)。

一、MySQL/MariaDB(主流关系型数据库)

MariaDB是MySQL的开源替代版,Orange Pi优先推荐安装。

1. 安装MariaDB

# 更新软件源
sudo apt update

# 安装MariaDB服务器+客户端
sudo apt install mariadb-server mariadb-client -y

# 启动并设置开机自启
sudo systemctl start mariadb
sudo systemctl enable mariadb

# 安全初始化(必做:设置root密码、移除匿名用户等)
sudo mysql_secure_installation

初始化时的关键步骤:

按提示设置
root
密码(记牢!);
选择
Y
移除匿名用户;
选择
Y
禁止root远程登录(默认安全配置);
选择
Y
删除测试数据库;
选择
Y
刷新权限表。

2. 核心基本操作
(1)登录数据库

# 本地登录root用户(需输入初始化时设置的密码)
mysql -u root -p

# 登录成功后,提示符变为:MariaDB [(none)]>
(2)数据库操作(创建/查看/删除)

-- 1. 创建数据库(例:创建名为orangepi_db的数据库,编码UTF-8)
CREATE DATABASE IF NOT EXISTS orangepi_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 2. 查看所有数据库
SHOW DATABASES;

-- 3. 切换到目标数据库(后续操作基于此库)
USE orangepi_db;

-- 4. 删除数据库(谨慎!)
DROP DATABASE IF EXISTS orangepi_db;
(3)数据表操作(创建/查看/删除)

-- 1. 创建数据表(例:创建用户表user)
CREATE TABLE IF NOT EXISTS user (
    id INT AUTO_INCREMENT PRIMARY KEY,  -- 自增主键
    name VARCHAR(50) NOT NULL,         -- 用户名(非空)
    age INT,                           -- 年龄
    create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP  -- 创建时间(默认当前时间)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 2. 查看当前数据库的所有表
SHOW TABLES;

-- 3. 查看表结构
DESC user;

-- 4. 删除数据表(谨慎!)
DROP TABLE IF EXISTS user;
(4)数据操作(增/删/改/查)

-- 1. 插入数据(新增)
INSERT INTO user (name, age) VALUES ('张三', 20), ('李四', 25);

-- 2. 查询数据
-- 查所有数据
SELECT * FROM user;
-- 条件查询(查年龄>20的用户)
SELECT name, age FROM user WHERE age > 20;

-- 3. 修改数据(例:把张三的年龄改为22)
UPDATE user SET age = 22 WHERE name = '张三';

-- 4. 删除数据(例:删除李四)
DELETE FROM user WHERE name = '李四';
(5)退出数据库

EXIT;  -- 或 q
3. 其他常用操作

# 查看MariaDB运行状态
sudo systemctl status mariadb

# 重启MariaDB
sudo systemctl restart mariadb

# 忘记root密码?重置方法(简化版)
sudo mysqld_safe --skip-grant-tables &
mysql -u root
UPDATE mysql.user SET password=PASSWORD('新密码') WHERE User='root';
FLUSH PRIVILEGES;
EXIT;
sudo systemctl restart mariadb

二、SQLite(轻量级嵌入式数据库,无需服务端)

适合小型项目、无服务端场景,无需安装服务,仅需客户端即可。

1. 安装SQLite3

sudo apt install sqlite3 -y
2. 核心基本操作
(1)创建/打开数据库文件

SQLite的数据库是单个文件,直接创建即可:


# 创建并进入orangepi.db数据库(不存在则创建,存在则打开)
sqlite3 orangepi.db

# 登录成功后,提示符变为:sqlite>
(2)数据库/表操作

-- 1. 创建表(例:创建商品表goods)
CREATE TABLE IF NOT EXISTS goods (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    price FLOAT,
    stock INT DEFAULT 0
);

-- 2. 查看所有表
.tables

-- 3. 查看表结构
.schema goods
(3)数据操作(增/删/改/查)

-- 1. 插入数据
INSERT INTO goods (name, price, stock) VALUES ('橙子派配件', 29.9, 100), ('散热片', 5.9, 500);

-- 2. 查询数据
SELECT * FROM goods;
SELECT name, price FROM goods WHERE stock > 100;

-- 3. 修改数据
UPDATE goods SET price = 28.9 WHERE name = '橙子派配件';

-- 4. 删除数据
DELETE FROM goods WHERE name = '散热片';
(4)退出SQLite

.quit  -- 或 .exit
(5)其他常用命令

# 查看数据库文件信息
sqlite3 orangepi.db ".dbinfo"

# 导出数据库到SQL文件
sqlite3 orangepi.db ".dump" > orangepi_backup.sql

# 从SQL文件恢复数据库
sqlite3 orangepi_new.db < orangepi_backup.sql

三、Orange Pi专属注意事项

权限问题

MySQL/MariaDB操作尽量用
sudo
(避免权限不足);
SQLite数据库文件默认保存在当前目录,确保目录有读写权限(如
~/Desktop
)。

性能优化

Orange Pi内存有限,MySQL/MariaDB避免创建超大表,可关闭不必要的日志;
SQLite适合单进程/低并发场景,高并发建议用MariaDB。

远程访问(可选)

若需远程连接MySQL/MariaDB,需修改配置:


sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
# 将 bind-address = 127.0.0.1 改为 0.0.0.0(允许所有IP访问)
sudo systemctl restart mariadb
# 给root授权远程访问(谨慎!仅测试环境用)
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;

以上是Orange Pi上最常用的两种数据库的基础操作,覆盖“安装-建库-建表-增删改查”核心流程,按需选择即可(小型项目用SQLite,多用户/高并发用MariaDB)。

以下是实现Orange Pi上MariaDB自动化安装与初始化的Shell脚本,包含权限校验、安装流程、安全初始化自动应答(无需手动交互),适配Debian/Ubuntu系系统(如Armbian)。

完整脚本(mariadb_install.sh)


#!/bin/bash
set -e  # 脚本执行出错时立即退出

# ===================== 配置项(按需修改)=====================
ROOT_PASSWORD="你的数据库root密码"  # 务必修改为自己的密码!
# ============================================================

# 检查是否为root用户(或sudo权限)
if [ $EUID -ne 0 ]; then
    echo "错误:请使用root权限运行此脚本(加sudo)!"
    echo "示例:sudo bash mariadb_install.sh"
    exit 1
fi

# 检查密码是否未修改
if [ "$ROOT_PASSWORD" = "你的数据库root密码" ]; then
    echo "错误:请先修改脚本中的ROOT_PASSWORD为自定义密码!"
    exit 1
fi

# 第一步:更新软件源
echo -e "
===== 1. 更新软件源 ====="
apt update -y

# 第二步:安装MariaDB服务器和客户端
echo -e "
===== 2. 安装MariaDB ====="
apt install mariadb-server mariadb-client -y

# 第三步:启动并设置开机自启
echo -e "
===== 3. 启动MariaDB服务 ====="
systemctl start mariadb
systemctl enable mariadb --now  # --now:立即启动+开机自启

# 第四步:安全初始化(自动应答,无需手动交互)
echo -e "
===== 4. 执行安全初始化 ====="
# 自动应答mysql_secure_installation的交互问题
mysql_secure_installation << EOF

$ROOT_PASSWORD
$ROOT_PASSWORD
Y
Y
Y
Y
EOF

# 第五步:验证安装结果
echo -e "
===== 5. 验证MariaDB状态 ====="
if systemctl is-active --quiet mariadb; then
    echo "✅ MariaDB服务运行正常!"
else
    echo "❌ MariaDB服务启动失败!"
    exit 1
fi

# 测试root登录(可选,验证密码是否生效)
echo -e "
===== 6. 验证root密码登录 ====="
mysql -uroot -p"$ROOT_PASSWORD" -e "SELECT VERSION();" > /dev/null 2>&1
if [ $? -eq 0 ]; then
    echo "✅ MariaDB root用户登录成功!"
    echo -e "
🎉 MariaDB安装初始化完成!"
    echo "🔑 root密码:$ROOT_PASSWORD"
    echo "📌 登录命令:mysql -uroot -p"
else
    echo "❌ MariaDB root密码验证失败!"
    exit 1
fi

使用步骤

1. 创建脚本文件

# 进入桌面(或其他目录)
cd ~/Desktop

# 创建脚本文件
nano mariadb_install.sh
2. 粘贴脚本并修改配置

将上面的脚本完整粘贴到编辑器中,务必修改
ROOT_PASSWORD
为你自己的密码
(比如
ROOT_PASSWORD="OrangePi@123"
),然后按
Ctrl+O
保存,
Ctrl+X
退出。

3. 赋予执行权限

chmod +x mariadb_install.sh
4. 运行脚本(必须加sudo)

sudo bash mariadb_install.sh

脚本核心说明

权限校验:强制要求root/sudo权限,避免安装过程中权限不足;
自动应答:通过
<< EOF
重定向实现
mysql_secure_installation
的无人值守交互,对应手动操作的应答逻辑:

第一行空:跳过“输入当前root密码”(新安装无密码);
第二/三行:输入并确认新root密码;
后续4个
Y
:依次确认“移除匿名用户、禁止root远程登录、删除测试库、刷新权限”;

状态验证:安装后检查服务是否运行、密码是否生效,确保安装成功;
容错机制
set -e
确保脚本出错时立即退出,避免无效执行。

注意事项

密码复杂度:建议包含大小写字母+数字+特殊符号(如
OrangePi@2025
),避免简单密码;
网络问题:若
apt update
失败,检查Orange Pi的网络连接,或更换国内源(如清华源);
重装场景:若已安装过MariaDB,脚本会覆盖安装,执行前建议备份原有数据;
远程访问:若需要远程连接数据库,需手动修改
/etc/mysql/mariadb.conf.d/50-server.cnf
中的
bind-address

0.0.0.0
,并授权远程用户(脚本默认禁用远程root登录,保障安全)。

扩展:手动授权远程访问(可选)

若需要从其他电脑连接Orange Pi的MariaDB,脚本运行完成后执行:


# 登录数据库
mysql -uroot -p"你的密码"

# 授权root从任意IP访问(仅测试环境用)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;

# 刷新权限
FLUSH PRIVILEGES;

# 退出
EXIT;

# 重启MariaDB
sudo systemctl restart mariadb

从输出结果来看,MariaDB已经在你的Orange Pi上完全安装并初始化成功!以下是后续的关键操作指引,帮你快速上手使用数据库:

一、立即验证登录(核心操作)

执行脚本提示的登录命令,输入密码
123123
即可进入数据库控制台:


mysql -uroot -p

输入密码时终端

© 版权声明

相关文章

暂无评论

none
暂无评论...