linux配置数据库

一、ubuntu配置mysql

(1)安装mysql

cpp 复制代码
# 更新包列表
sudo apt update

# 安装 MySQL Server
sudo apt install mysql-server

(2)配置安全配置

cpp 复制代码
# 运行安全配置脚本
sudo mysql_secure_installation

1. 是否设置验证密码插件? → 选择 Y
2. 设置 root 密码 → 输入强密码
3. 是否移除匿名用户? → 选择 Y
4. 是否禁止 root 远程登录? → 选择 Y
5. 是否移除测试数据库? → 选择 Y
6. 是否重新加载权限表? → 选择 Y

(3)启动mysql服务

cpp 复制代码
# 检查服务状态
sudo systemctl status mysql

# 启动服务(如果未运行)
sudo systemctl start mysql

# 设置开机自启
sudo systemctl enable mysql

# 重启服务(应用配置更改)
sudo systemctl restart mysql

(4)验证安装

cpp 复制代码
# 检查 MySQL 版本
mysql --version

二、mysql简单应用

cpp 复制代码
# 连接到 MySQL(使用 root 用户)
sudo mysql -u root -p

#显示所有数据库
SHOW DATABASES;

#查看所有表
SHOW TABLES;

#创建测试数据库
CREATE DATABASE test_db;

#使用数据库
USE test_db;

#创建测试表
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    email VARCHAR(100)
);

#查看表结构
DESC users;

#插入测试数据
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');

#查询数据
SELECT * FROM users;

#退出
quit

三、离线配置sqlite3

本文需要给linux单片机配置一个数据库,但由于mysql空间较大,所以采用sqlite3,然后由于linux单片机不可以上网,因此在虚拟机种交叉编译后再linux单片机上运行

cpp 复制代码
mkdir sqlite-source
cd sqlite-source
wget https://www.sqlite.org/2024/sqlite-autoconf-3450100.tar.gz
tar -xzf sqlite-autoconf-*.tar.gz
cd sqlite-autoconf-*

#配置编译选项,由于我的目标机架构是aarch64,因此修改编译选项
#uname -m
#aarch64(ARM64)

export CC=aarch64-linux-gnu-gcc
export AR=aarch64-linux-gnu-ar
export RANLIB=aarch64-linux-gnu-ranlib

./configure \
    --host=aarch64-linux-gnu \
    --prefix=/usr/local \
    --enable-static \
    --disable-shared

make -j$(nproc)

file sqlite3
sqlite3: ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, ...

mkdir -p sqlite3-aarch64/usr/local/bin
mkdir -p sqlite3-aarch64/usr/local/lib
cp sqlite3 sqlite3-aarch64/usr/local/bin/
cp .libs/libsqlite3.a sqlite3-aarch64/usr/local/lib/

cat > sqlite3-aarch64/install.sh << 'EOF'
#!/bin/bash
echo "正在安装 SQLite3 (aarch64)..."
sudo cp -r usr/local/* /usr/local/
sudo ln -sf /usr/local/bin/sqlite3 /usr/bin/sqlite3 2>/dev/null
echo "安装完成!"
sqlite3 --version
EOF
chmod +x sqlite3-aarch64/install.sh

tar -czf sqlite3-aarch64.tar.gz sqlite3-aarch64

通过U盘或者网络传输到目标机aarch64设备上
tar -xzf sqlite3-aarch64.tar.gz
cd sqlite3-aarch64
sudo ./install.sh
sqlite3 --version

四、sqlite3简单应用

cpp 复制代码
# 登录数据库(不存在则自动创建)
sqlite3 mydatabase.db

# 退出
.exit 或 .quit

CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    age INTEGER CHECK(age > 0),
    email TEXT UNIQUE,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO users (name, age, email) VALUES ('Alice', 25, 'alice@example.com');

SELECT * FROM users;

#查看所有表
.tables
相关推荐
羑悻的小杀马特37 分钟前
把随身WiFi改成网盘聚合器:中兴F50挂载本地存储+夸克网盘实战
运维·服务器·人工智能·网盘·openlist
无人生还别怕1 小时前
如何制作一个linux标准iso镜像
linux·iso·opencloudos·openanolisos
YOU OU8 小时前
Redis基础常识与命令
数据库·redis·缓存
Yana.nice9 小时前
Linux 只保留 30 天内日志(find命令删除日志文件)
linux·运维·chrome
Database_Cool_10 小时前
OLTP 和 OLAP 区别详解:分析型数据库和事务型数据库怎么选(附阿里云 AnalyticDB MySQL 选型指南)
数据库·mysql·阿里云
爱写代码的阿森10 小时前
鸿蒙三方库 | harmony-utils之KvUtil键值型数据库操作详解
数据库·华为·harmonyos·鸿蒙·huawei
Database_Cool_11 小时前
单机 MySQL 迁移到分布式数据库方便吗?阿里云 PolarDB-X 100% MySQL 协议兼容零改造平滑迁移
数据库·分布式·mysql
2601_9605679611 小时前
电商套图自动化效率的工程量化分析——从逐张生成到批量套图的架构演进
运维·架构·自动化
姜太小白11 小时前
【MySQL】 索引优化实战:解决 WHERE 等值 + IS NULL 查询,TEXT 字段报错 1167 的完整指南
数据库·mysql