任务要求
部署 openEuler 服务器,关闭 SELinux、配置可用 yum 源,编译安装 Python3.11.9;
安装 MySQL8.0.45,创建 testdb 库、order_info 订单业务表,导入20 条标准测试订单数据;
登录并开通腾讯云 TokenHub 大模型聚合平台,申请 API 密钥,领取免费额度,编写.env 配置文件并加固文件权限;
安装项目全部 Python 依赖包,测试数据库连通性、大模型接口连通性
任务环境
安装1台虚拟机及OpenEuler2203_SP4系统,进行环境配置:
关闭selinx:
vim /etc/selinux/config确定是关闭状态
改名:
hostnamectl set-hostname hostserver bash确定时间正确:
若错误进行更改:
vim /etc/chrony.conf server ntp.aliyun.com iburst systemctl restart chronyd chronyc sources下载所需软件:
dnf install -y gcc gcc-c++ make cmake zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel libffi-devel tk-devel wget tar vim tree net-tools openssh-server源码编译安装Python3.11.9
脚本开发编写这里使用py文件。
下载:https://www.python.org/downloads/release/python-3119/
下载完毕后使用XFTP将源码包上传到/usr/local/src路径下
进入源码目录进行解压
[root@hostserver ~]# cd /usr/local/src/ [root@hostserver src]# tar -zxvf Python-3.11.9.tgz编译配置
[root@hostserver src]# cd Python-3.11.9 [root@hostserver Python-3.11.9]# ./configure --prefix=/usr/local/python3.11 --enable-shared [root@hostserver Python-3.11.9]# make -j$(nproc) && make install[root@hostserver Python-3.11.9]# echo "/usr/local/python3.11/lib" > /etc/ld.so.conf.d/python311.conf [root@hostserver Python-3.11.9]# ldconfig [root@hostserver Python-3.11.9]# ln -s /usr/local/python3.11/bin/python3.11 /usr/local/bin/python3 [root@hostserver Python-3.11.9]# ln -s /usr/local/python3.11/bin/pip3.11 /usr/local/bin/pip3 [root@hostserver Python-3.11.9]# bash检测是否配置成功
校验ssl模块
[root@hostserver Python-3.11.9]# python3 -c "import ssl; print(ssl.OPENSSL_VERSION)" OpenSSL 1.1.1wa 16 Nov 2023配置国内 pip 源
[root@hostserver Python-3.11.9]# cd [root@hostserver ~]# mkdir .pip [root@hostserver ~]# [root@hostserver ~]# vim ~/.pip/pip.conf安装python及ai依赖
[root@hostserver ~]# pip3 install --upgrade pip [root@hostserver ~]# pip3 install pymysql python-dotenv tabulate langchain langchain-openai部署并初始化MySQL 8.0.45
下载:https://downloads.mysql.com/archives/community/
使用xftp将软件包上传到根目录
部署数据库
[root@hostserver /]# tar -xvf mysql-8.0.45-linux-glibc2.28-x86_64.tar.xz [root@hostserver /]# cd mysql-8.0.45-linux-glibc2.28-x86_64使用前准备
[root@hostserver mysql-8.0.45-linux-glibc2.28-x86_64]# cd / [root@hostserver /]# mv mysql-8.0.45-linux-glibc2.28-x86_64 /usr/local/mysql [root@hostserver /]# cd /usr/local/mysql/[root@hostserver mysql]# [root@hostserver mysql]# groupadd mysql [root@hostserver mysql]# useradd -r -g mysql -s /sbin/nologin mysql [root@hostserver mysql]# mkdir data [root@hostserver mysql]# chmod -R 750 data [root@hostserver mysql]# chown -R mysql:mysql /usr/local/mysqlbin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data保存选中部分的生成密码
使用后台开启mysql,开启后使用打开该虚拟机另一个窗口 [root@hostserver mysql]# bin/mysqld_safe --user=mysql &[root@hostserver ~]# cd /usr/local/mysql/ [root@hostserver mysql]# [root@hostserver mysql]# bin/mysql -u root -p Enter password: //此时把之前生成的密码粘贴上,密码并不会显示在屏幕上,回车进入配置数据库
mysql> alter user 'root'@'localhost' identified with mysql_native_password by'123456'; //更改密码 mysql> flush privileges; //刷新 mysql> use mysql; mysql> select user, host, plugin from mysql.user; //查看初始数据库 mysql> exit //退出数据库 Bye设置数据库配置文件
查询后用进程号删除该进程,并在第一个窗口回车退出mysql
[root@hostserver mysql]# vim /etc/my.cnf[root@hostserver mysql]# vim /usr/lib/systemd/system/mysqld.service[root@hostserver mysql]# systemctl daemon-reload [root@hostserver mysql]# systemctl enable --now mysqld.service更改环境变量
[root@hostserver mysql]# vim ~/.bash_profile [root@hostserver mysql]# source ~/.bash_profile登录测试
[root@hostserver mysql]# mysql -uroot -p创建库和表,加入数据
mysql> create database testdb; Query OK, 1 row affected (0.01 sec) mysql> use testdb; Database changed mysql> create table order_info( -> id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '订单ID', -> user_id INT COMMENT '用户ID', -> order_name VARCHAR(200) COMMENT '商品名称', -> pay_amount DECIMAL(10,2) COMMENT '支付金额', -> create_time DATETIME COMMENT '下单时间' -> ) ENGINE=InnoDB COMMENT='电商订单业务表'; Query OK, 0 rows affected (0.03 sec) mysql> INSERT INTO order_info(user_id,order_name,pay_amount,create_time) -> VALUES -> (1001,'智能手机',2999.00,'2026-05-01 10:20:00'), -> (1001,'有线入耳耳机',199.00,'2026-05-02 14:10:00'), -> (1002,'14英寸轻薄笔记本电脑',5499.00,'2026-05-03 09:30:00'), -> (1002,'无线蓝牙鼠标',89.00,'2026-05-03 09:35:00'), -> (1003,'平板学习机',1799.00,'2026-05-04 11:05:00'), -> (1003,'平板专用保护壳',49.00,'2026-05-04 11:08:00'), -> (1004,'机械游戏键盘',349.00,'2026-05-05 16:42:00'), -> (1004,'电竞头戴耳机',459.00,'2026-05-05 16:48:00'), -> (1005,'大屏智能电视',3299.00,'2026-05-06 08:15:00'), -> (1005,'电视壁挂支架',129.00,'2026-05-06 08:20:00'), -> (1006,'无线快充充电器',129.00,'2026-05-03 13:22:00'), -> (1006,'降噪蓝牙耳机',399.00,'2026-05-03 13:25:00'), -> (1007,'电竞显示器',1899.00,'2026-05-07 10:10:00'), -> (1007,'显示器增高支架',79.00,'2026-05-07 10:15:00'), -> (1008,'折叠平板支架',39.00,'2026-05-04 15:30:00'), -> (1008,'便携充电宝',159.00,'2026-05-04 15:33:00'), -> (1009,'台式游戏主机',6999.00,'2026-05-08 09:05:00'), -> (1009,'电竞防滑鼠标垫',59.00,'2026-05-08 09:08:00'), -> (1010,'手机钢化膜',29.00,'2026-05-05 17:12:00'), -> (1010,'桌面收纳支架',45.00,'2026-05-05 17:16:00');获取API Key
访问腾讯云官网,手机号注册并完成实名认证
登录后进入 “API Key管理”→“新建 API 密钥”,填写密钥名称并保存
脚本开发
新建目录及脚本
[root@hostserver ~]# mkdir -p /opt/mysql_ai_tools [root@hostserver ~]# cd /opt/mysql_ai_tools [root@hostserver mysql_ai_tools]# touch main.py mysql_client.py prompts.py web_main.py .env编写python文件
[root@hostserver ~]# vim /opt/mysql_ai_tools/.env [root@hostserver ~]# chmod 600 /opt/mysql_ai_tools/.env[root@hostserver ~]# vim /opt/mysql_ai_tools/mysql_client.py[root@hostserver ~]# vim /opt/mysql_ai_tools/prompts.py[root@hostserver ~]# vim /opt/mysql_ai_tools/main.py测试
[root@hostserver ~]# python3 /opt/mysql_ai_tools/main.pyweb可视化版本
已有业务文件: main.py mysql_client.py prompts.py .env文件不变
需要编写web_main.py入口文件
使用pip安装
[root@hostserver ~]# /usr/local/python3.11/bin/pip3 install langchain-openai streamlit pymysql python-dotenv sqlparse tabulate测试依赖路径
[root@hostserver ~]# /usr/local/python3.11/bin/python3 -c "import langchain_openai;print('3.11依赖全部正常')"编写web_main.py文件
systemd后台服务
[root@hostserver ~]# vim /etc/systemd/system/mysql-ai-web.service设置服务开机自启动
[root@hostserver ~]# systemctl daemon-reload [root@hostserver ~]# systemctl enable --now mysql-ai-web浏览器访问ip测试
搭建成功