jetson开发板Ubuntu系统Docker中使用 MySQL 数据库详解-安装与配置指南

一、安装 MySQL Server

注:在docker容器root终端下,不需要sudo,直接使用命令行即可。

1、# 更新软件包列表 sudo apt update

2、# 安装MySQL Server sudo apt install mysql-server

3、# 启动MySQL服务 sudo systemctl start mysql # 检查运行状态 sudo systemctl status mysql

4、# 设置开机自启 sudo systemctl enable mysql

二、配置 MySQL 安全设置

运行安全脚本 sudo mysql_secure_installation

按照提示完成以下操作:

1. 设置root密码(强烈建议设置复杂密码)在Ubuntu系统中一般是默认使用auth_socket插件进行身份验证,不需要在这里输入密码,可以先继续执行,然后再配置密码

2. 移除匿名用户

3. 禁止root远程登录

4. 移除测试数据库

5. 重新加载权限表

三、配置 超级用户root登录密码

1、查看mysql版本 mysql --version

2、安装过程中如果没有让设置密码,直接在终端使用:sudo mysql

系统 root 用户身份直接访问 MySQL 服务器

3、如果有需要设置密码,密码设置为  Anepower888

4、ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';                 密码为 Anepower888

5、刷新:FLUSH PRIVILEGES;  退出:EXIT;

6、验证密码登录,终端使用:mysql -u root -p  输入: Anepower888

注:在mysql环境下使用指令,后面以 ;结尾可以被识别

四、配置环境

1、终端下使用指令修改端口号和ip地址:sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

2、终端下使用指令查看root用户访问权限:sudo netstat -tulpn | grep mysqld

3、查看用户和权限:SELECT User, Host FROM mysql.user;

4、查看当前用户数据库:SHOW DATABASES;

5、创建所需新数据库:CREATE DATABASE bau_system_db;

6、使用数据库:use bau_system_db;

7、输出所有数据表:SHOW TABLES;

8、在mysql终端下**(1)创建用户信息数据表**

CREATE TABLE system_users (

id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,

username VARCHAR(50) NOT NULL UNIQUE,

password VARCHAR(100) NOT NULL,

user_type ENUM('管理员', '测试员') NOT NULL,

is_active TINYINT(1) DEFAULT 1,

create_time DATETIME DEFAULT CURRENT_TIMESTAMP

);

测试插入数据 INSERT INTO system_users (id, username, password, user_type, is_active, create_time)

VALUES

(1, 'admin', 'admin123', '管理员', 1, '2024-06-18 05:40:43'),

(2, 'tester', 'tester123', '测试员', 1, '2024-06-18 05:41:47');
(2)创建操作日志信息表

CREATE TABLE operate_logs (

id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,

time DATETIME NOT NULL,

module VARCHAR(100) NOT NULL,

operator_type VARCHAR(50) NOT NULL,

operation VARCHAR(100) NOT NULL,

detail TEXT NOT NULL,

success TINYINT NOT NULL

);
(3)创建告警日志数据表

CREATE TABLE alarm_logs (

id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,

cell_id VARCHAR(50) NOT NULL,

start_time DATETIME NOT NULL,

end_time DATETIME DEFAULT NULL,

duration VARCHAR(20) DEFAULT NULL,

level VARCHAR(20) NOT NULL,

position VARCHAR(50) NOT NULL,

content VARCHAR(255) NOT NULL,

error_info TEXT DEFAULT NULL,

created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE   CURRENT_TIMESTAMP,

INDEX (content)

);

9、此时,所有环境已经配置完成,所需数据表已经创建完成,运行系统,如果还是无法连接数据库,有可能因为数据库还未启动,因为在docker环境下,设置开机自启暂时不起作用,可以将指令加入运行脚本中,提前运行开启数据库即可。指令为:service mysql start

还可以使用service mysql status指令查看数据库状态。

四、数据库常用指令

1、修改数据表名称:RENAME TABLE user TO system_users;

2、修改数据表某个字段密码: UPDATE `system_users`

-> SET `password` = 'tester123'

-> WHERE `username` = 'tester' AND `user_type` = '测试员';

3、查看表结构:DESCRIBE user;

| Field | Type | Null | Key | Default | Extra |

+-------------+-----------------------+------+-----+-------------------+----------------+

| id | int | NO | PRI | NULL | auto_increment |

| username | varchar(50) | NO | UNI | NULL | |

| password | varchar(100) | NO | | NULL | |

| user_type | enum('管理员','测试员')| NO | | NULL | |

| is_active | tinyint(1) | YES | | 1 | |

| create_time | datetime | YES | | CURRENT_TIMESTAMP |

4、删除所有测试员用户:DELETE FROM user WHERE user_type = '测试员';

5、删除单个用户:DELETE FROM user WHERE username = 'test_user';

6、删除表:DROP TABLE IF EXISTS +表格名;

7、查看表数据:SELECT * FROM system_users;

+----+----------+-----------+-----------+-----------+---------------------+

| id | username | password | user_type | is_active | create_time |

+----+----------+-----------+-----------+-----------+---------------------+

| 1 | admin | admin123 | 管理员 | 1 | 2024-06-18 05:40:43 |

| 2 | tester | tester123 | 测试员 | 1 | 2024-06-18 05:41:47 |

+----+----------+-----------+-----------+-----------+---------------------+

8、使用vi /etc/mysql/mysql.conf.d/mysqld.cnf 进行修改

bind-address = 127.0.0.1 # 只允许本地连接     port = 3306 # 使用标准端口

这样才能共其他设备进行连接,或者代码连接数据库

9、在mysql中无法重命名数据库,只能通过创建新数据库,迁移表结构和数据

-- 1. 创建新数据库:CREATE DATABASE new_system;

-- 2. 查看原数据库中的所有表:USE login_system;  SHOW TABLES;

-- 3. 逐个将表结构和数据复制到新数据库:CREATE TABLE new_system.name LIKE login_system.name;
INSERT INTO new_system.name SELECT * FROM login_system.name;

-- 4. 确认新数据库中的数据无误后,删除原数据库(谨慎操作!)
DROP DATABASE login_system;

10、删除数据库 :DROP DATABASE [IF EXISTS] database_name;

11、删除某几条数据 DELETE FROM alarm_logs
WHERE start_time > '2025-08-06 18:30:00'
AND start_time < '2025-08-06 19:00:00';
alarm_logs

五、配置远程登录mysql服务器

1、使用指令进入编辑界面 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf  找到这里禁用127.0.0.1

配置兼容所有ip地址,也可以配置兼容特定ip。

2、如果需要远程登录jetson板子上的数据库,需要使用新的用户去操作,尽量不要直接访问root用户,在mysql服务器状态下使用CREATE USER 'db_admin'@'192.168.66.1' IDENTIFIED BY 'Ma9609031004.'; 创建新用户,这里的新用户IP地址是客户端ip地址,并且为新用户设置密码。使用指令GRANT SELECT, INSERT, UPDATE, DELETE ON your_database.* TO 'db_admin'@'192.168.66.1'; 指令赋予用户权限,使用FLUSH PRIVILEGES; 刷新权限,这里的your_database 使用已经创建的数据库名即可。进入用户查询用户权限界面,使用**SELECT User, Host FROM mysql.user;**编辑可以看到有哪些用户属于本地,有哪些用户允许外部访问。

六、忘记登录密码操作方式

1、停止 MySQL 服务          sudo systemctl stop mysql

2、以跳过权限检查的方式启动 MySQL  sudo mysqld_safe --skip-grant-tables &

3、使用 root 身份无密码登        mysql -u root

4、在 MySQL 命令行中执行以下语句重置密码(选择适合你版本的语句)

对于 MySQL 8.0 及以上版本
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

5、刷新权限并退出 FLUSH PRIVILEGES;   EXIT;

6、停止 MySQL 服务          sudo systemctl stop mysql

7、正常启动 MySQL 服务        sudo systemctl start mysql

相关推荐
计算机学姐10 小时前
基于微信小程序的高校班务管理系统【2026最新】
java·vue.js·spring boot·mysql·微信小程序·小程序·mybatis
Microsoft Word14 小时前
向量数据库与RAG
数据库·人工智能·向量数据库·rag
位步14 小时前
在linux系统中使用通用包安装 Mysql
android·linux·mysql
艾德金的溪15 小时前
redis-7.4.6部署安装
前端·数据库·redis·缓存
小光学长15 小时前
基于Vue的2025年哈尔滨亚冬会志愿者管理系统5zqg6m36(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js
小陈永不服输15 小时前
MySQL覆盖索引深度解析:从原理到实践的性能优化之道
mysql
AlexMercer101216 小时前
Ubuntu从零开始配置Git
c++·git·ubuntu·gitee
我的offer在哪里16 小时前
Redis
数据库·redis·缓存
点灯小铭16 小时前
基于单片机的多模式自动洗衣机设计与实现
数据库·单片机·嵌入式硬件·毕业设计·课程设计