当前位置: 首页 > news >正文

实战指南:在 openEuler 上部署 MySQL + LangChain AI 数据库查询工具

任务要求

  • 部署 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/mysql

bin/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.py


web可视化版本

  • 已有业务文件: 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测试

搭建成功

测试

http://www.jsqmd.com/news/1299756/

相关文章:

  • 已经工作后考什么证比较好用?2026职场人破局的高含金量证书盘点
  • 终极.NET Core游戏Mod加载器:Reloaded-II完整配置与实战指南
  • Bilibili-Old项目翻页评论区功能失效的深度技术分析与架构级修复方案
  • AI模型服务化架构评审必查清单(附GPT-4o实测验证):8类动态依赖陷阱及防御代码模板
  • 2026(新)金华 CMA 甲醛检测机构推荐:衡境测研等 5 家纯检测实验室 - 衡境测研
  • MS文件格式转换:从PDB到CIF与MOL的完整操作指南
  • 2026(新)舟山 CMA 甲醛检测机构推荐:衡境测研等 5 家纯检测实验室 - 衡境测研
  • Linux下USB摄像头设备名重复问题:C/C++开发中的udev规则与稳定绑定实践
  • Java市场招聘的需求风向已经彻底变了!
  • 大型跨国演出技术整合方案:从系统架构到现场执行全解析
  • 2026(新)蚌埠 CMA 甲醛检测机构推荐:衡境测研等 5 家纯检测实验室 - 衡境测研
  • Python subprocess模块实战:从基础命令执行到JSON解析与进程管理
  • 使用GPT模型教程-Cursor
  • 都在劝年轻人转AI,可同一轮招聘,制造业招13.6万人,AI只招近1000人
  • 2026荔湾飞天茅台酒回收门店哪家好?口碑推荐,鑫益商行鉴定专业 - mobible
  • STM32 HAL库与CubeMX开发实战:从环境搭建到项目框架
  • 数据分析实习面试5步搞定:从刷题到模拟 - 品牌品鉴馆
  • 血型遗传查询 API 接入详解:参数、响应与错误排查
  • 抖音用户视频列表获取实战:模拟App请求与反爬策略解析
  • 2026美兰设计公司推荐、装修设计师公司哪家好?6个避坑要点,绕开90%的装修坑 - mobible
  • 玄琨GEO效果观测:AI搜索优化的数据验证与监测方案 - 汇聚至此
  • 5G站点软件错误告警与资源激活超时两类典型告警分析与处理
  • 无损视频剪辑终极解决方案:告别重编码,拥抱高效媒体处理新时代
  • 英语精听训练方法论:从语音识别到真实场景应用的112集系统课程
  • 2026年国内低噪声光电探测器厂家 噪声控制差异大 适配多场景参考 - 品牌品鉴馆
  • 2026黄埔礼品回收门店推荐避坑指南:4个常见坑+5条硬标准,靠谱门店推荐 - mobible
  • Google Earth Engine遥感数据处理入门与实践
  • 申论线上课怎么选?胡杨老师99元的课到底靠不靠谱? - 浙江考公考编
  • 2026开学季班级投票活动怎么发起?海投票新学期评选方案 - 微信投票小程序
  • 鸣潮游戏自动化终极指南:开源工具如何每天为你节省3小时