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

相关推荐
学Java的bb7 小时前
后端Web实战-多表操作&员工列表查询
数据库
2301_781392527 小时前
Spring框架入门:从IoC到AOP
java·数据库·spring
yBmZlQzJ7 小时前
在PostgreSQL中使用分区技术
数据库·postgresql
柳鲲鹏7 小时前
UBUNTU之Onvif开源服务器onvif_srvd:1、编译
ubuntu·onvif
我有一颗五叶草8 小时前
MySQL 体系结构
数据库·mysql
久绊A8 小时前
阿里云OSS架构示意图与流程
数据库·阿里云·oss
努力努力再努力@李8 小时前
利用本地电脑上的MobaXterm连接虚拟机上的Ubuntu
linux·运维·ubuntu
xhbh6669 小时前
MySQL服务启动命令手册(Linux+Windows+macOS)(下)
数据库·mysql·macos·mysql启动命令·mysql 启动
Databend9 小时前
传统大数据 Hadoop 和 云原生湖仓 Databend 对比
数据库