数据库作业4

发布时间:2026/8/6 5:41:06

数据库作业4
关闭防火墙 systemctl stop firewalld systemctl disable firewalld sed -i 7s/enforcing/disabled/ /etc/selinux/config 安装源码配置需求 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 [rootserver ~]# cd /usr/local/src [rootserver src]# tar -zxvf Python-3.11.9.tgz [rootserver src]# cd Python-3.11.9 [rootserver Python-3.11.9]# ./configure --prefix/usr/local/python3.11 --enable-shared [rootserver Python-3.11.9]# make -j$(nproc) make install [rootserver Python-3.11.9]# echo /usr/local/python3.11/lib /etc/ld.so.conf.d/python311.conf [rootserver Python-3.11.9]# ldconfig [rootserver Python-3.11.9]# ln -s /usr/local/python3.11/bin/python3.11 /usr/local/bin/python3 [rootserver Python-3.11.9]# ln -s /usr/local/python3.11/bin/pip3.11 /usr/local/bin/pip3 [rootserver Python-3.11.9]# bash [rootserver Python-3.11.9]# python3 -V [rootserver Python-3.11.9]# pip3 -V [rootserver Python-3.11.9]# python3 -c import ssl; print(ssl.OPENSSL_VERSION) [rootserver ~]# pip3 install --upgrade pip [rootserver ~]# pip3 install pymysql python-dotenv tabulate langchain langchain-openai 配置数据库 [rootserver /]# tar -xvf mysql-8.0.45-linux-glibc2.28-x86_64.tar.xz [rootserver /]# cd mysql-8.0.45-linux-glibc2.28-x86_64 [rootserver mysql-8.0.45-linux-glibc2.28-x86_64]# ls bin docs include lib LICENSE man README share support-files [rootserver mysql-8.0.45-linux-glibc2.28-x86_64] cd / [rootserver /]# mv mysql-8.0.45-linux-glibc2.28-x86_64 /usr/local/mysql [rootserver /]# cd /usr/local/mysql [rootserver yuziang]# groupadd yuziang [rootserver yuziang]# useradd -r -g mysql -s /sbin/nologin mysql [rootserver yuziang]# mkdir data [rootserver yuziang]# chmod -R 750 data [rootserver yuziang]# chown -R mysql:mysql /usr/local/mysql [rootserver yuziang]# bin/mysqld --initialize --usermysql --basedir/usr/local/mysql --datadir/usr/local/mysql/data [rootserver yuziang]# bin/mysqld_safe --usermysql [rootserver ~]# ps -ef | grep mysql [rootserver ~]# cd /usr/local/mysql [rootserver yuziang]# bin/mysql -u root -p [rootserver yuziang]# ln -s /usr/lib64/libncurses.so.6.3 /usr/lib64/libncurses.so.5 [rootserver yuziang]# ln -s /usr/lib64/libtinfo.so.6.3 /usr/lib64/libtinfo.so.5 [rootserver yuziang]# bin/mysql -u root -p Enter password: # 粘贴之前的初始密码 yuziang alter user rootlocalhost identified with mysql_native_password by 123456; yuziang flush privileges; yuziang use mysql; yuziang select user, host, plugin from mysql.user; ---------------------------------------------------- | user | host | plugin | ---------------------------------------------------- | mysql.infoschema | localhost | caching_sha2_password | | mysql.session | localhost | caching_sha2_password | | mysql.sys | localhost | caching_sha2_password | | root | localhost | mysql_native_password | ---------------------------------------------------- 4 rows in set (0.00 sec) yuziangexit [rootserver yuziang]# ps -ef | grep mysql [rootserver yuziang]# kill -9 pid号 [rootserver yuziang]# vim /etc/my.cnf [client] port 3306 socket /tmp/mysql.sock [mysqld] port 3306 basedir /usr/local/mysql datadir /usr/local/mysql/data tmpdir /tmp socket /tmp/mysql.sock character-set-server utf8mb4 collation-server utf8mb4_general_ci default-storage-engineINNODB log_error error.log [rootmaster yuziang]# vim /usr/lib/systemd/system/mysqld.service [Unit] DescriptionMySQL Server Afternetwork.target remote-fs.target nss-lookup.target [Service] Typenotify Usermysql Groupmysql ExecStart/usr/local/mysql/bin/mysqld --defaults-file/etc/my.cnf LimitNOFILE65535 LimitNPROC65535 Restarton-failure RestartPreventExitStatus1 TimeoutSec0 [Install] WantedBymulti-user.target [rootmaster yuziang]# systemctl daemon-reload [rootmaster yuziang]# systemctl enable --now mysqld.service [rootserver yuziang]# vim ~/.bash_profile export PATH$PATH:/usr/local/mysql/bin [rootserver yuziang]# source ~/.bash_profile编写脚本 [rootserver yuziang]# cd [rootserver ~]# mkdir -p /opt/mysql_ai_tools [rootserver ~]# cd /opt/mysql_ai_tools [rootserver yuziang_ai_tools]# touch main.py mysql_client.py prompts.py web_main.py .env vim /opt/mysql_ai_tools/.env MYSQL_HOST127.0.0.1 MYSQL_PORT3306 MYSQL_USERroot MYSQL_PASSWORD123456 MYSQL_DBtestdb LLM_API_KEY自己腾讯云api key LLM_BASE_URLhttps://tokenhub.tencentmaas.com/v1 LLM_MODEL_NAMEdeepseek-v4-pro LLM_TEMPERATURE0 import pymysql import os import re from dotenv import load_dotenv load_dotenv() class Mysql80Client: def __init__(self): self.host os.getenv(MYSQL_HOST, 127.0.0.1) self.port int(os.getenv(MYSQL_PORT, 3306)) self.user os.getenv(MYSQL_USER, root) self.password os.getenv(MYSQL_PASSWORD, ) self.database os.getenv(MYSQL_DB, testdb) self.conn None self.connect() def connect(self): try: self.conn pymysql.connect( hostself.host, portself.port, userself.user, passwordself.password, databaseself.database, charsetutf8mb4, cursorclasspymysql.cursors.DictCursor ) except pymysql.MySQLError as e: raise Exception(f数据库连接失败请检查地址/账号/密码{e.args[1]}) except Exception as e: raise Exception(f数据库连接异常{str(e)}) staticmethod def _check_sql_safety(sql: str) - None: sql_trim sql.strip().upper() danger_keywords [INSERT, UPDATE, DELETE, DROP, ALTER, CREATE, TRUNCATE, REPLACE] for kw in danger_keywords: if re.search(r\b re.escape(kw) r\b, sql_trim): raise Exception(f安全拦截禁止执行 {kw} 类型语句仅支持 SELECT 查询) def execute_query(self, sql: str): self._check_sql_safety(sql) try: with self.conn.cursor() as cursor: cursor.execute(sql) columns [desc[0] for desc in cursor.description] rows cursor.fetchall() return columns, rows except pymysql.MySQLError as e: raise Exception(fSQL执行失败错误码 {e.args[0]}{e.args[1]}) except Exception as e: raise Exception(f查询异常{str(e)}) def get_explain_plan(self, sql: str): self._check_sql_safety(sql) explain_sql fEXPLAIN {sql} try: with self.conn.cursor() as cursor: cursor.execute(explain_sql) columns [desc[0] for desc in cursor.description] rows cursor.fetchall() return columns, rows except pymysql.MySQLError as e: raise Exception(f获取执行计划失败{e.args[1]}) except Exception as e: raise Exception(f执行计划异常{str(e)}) def close(self): if self.conn and not self.conn._closed: self.conn.close()

相关新闻

C++编译期计算:从constexpr到if constexpr的性能优化实战

C++编译期计算:从constexpr到if constexpr的性能优化实战

2026/8/6 5:41:06

1. 项目概述:为什么我们需要编译期计算? 在C的世界里,性能优化是一场永无止境的军备竞赛。我们绞尽脑汁优化算法,使用更高效的数据结构,甚至深入到汇编层面去抠指令。但你是否想过,有一种优化,…

材料模量全解析:杨氏模量、剪切模量、体积模量及其工程应用

材料模量全解析:杨氏模量、剪切模量、体积模量及其工程应用

2026/8/6 5:41:06

1. 从“软硬”到“刚柔”:材料模量的本质是什么?聊到材料的“软”和“硬”,大家都有直观感受。橡皮筋很软,一拉就变形;钢铁很硬,掰都掰不动。但在工程设计和科学研究里,这种模糊的感性认知远远不…

2026企业AI搜索与品牌增长白皮书:从GEO优化到商业转化的全链路趋势解读

2026企业AI搜索与品牌增长白皮书:从GEO优化到商业转化的全链路趋势解读

2026/8/6 5:41:05

企业AI品牌增长新基建:基于语义向量化的GEO优化与全链路托管实战解析在AI生成式搜索逐渐取代传统搜索引擎的今天,许多技术负责人和市场总监都面临着一个共同的困惑:为什么官网内容齐全、产品优势明显,但在豆包、通义千问、DeepSee…

expo start 打开 React Native DevTools 报错 socket hang up / DevTools 弹不出来 —— 系统代理未放行本地回环

expo start 打开 React Native DevTools 报错 socket hang up / DevTools 弹不出来 —— 系统代理未放行本地回环

2026/8/6 6:31:08

expo start 打开 React Native DevTools 报错 socket hang up / DevTools 弹不出来 —— 系统代理未放行本地回环 现象 安卓上按 j 打开 React Native DevTools 时,yarn start 终端直接崩溃退出,报错: Error: socket hang upat Socket.socketOnEnd (node:_http_client:599:…

金融信创深入区,银行OCR怎么选?

金融信创深入区,银行OCR怎么选?

2026/8/6 6:31:08

2026年的金融信创,已经不是在边缘系统上”试试水”了。信贷审批、支付清算、核心交易系统——这些银行的命脉业务,现在都要开始国产化改造。对于给银行提供OCR引擎的厂商来说,这意味着合规要求直接上了好几个台阶。银行用OCR主要是两个场景&a…

PM2生产环境部署全攻略:从零搭建Node.js进程守护与集群方案

PM2生产环境部署全攻略:从零搭建Node.js进程守护与集群方案

2026/8/6 6:31:08

1. 从“手动守护”到“进程管家”:为什么生产环境离不开PM2如果你在服务器上跑过Node.js应用,大概率经历过这样的场景:通过SSH连上服务器,敲下node app.js,看着控制台输出启动成功的日志,然后心满意足地关掉…

AI Agent生产化关键:OpenClaw请求批准机制与安全可控实践

AI Agent生产化关键:OpenClaw请求批准机制与安全可控实践

2026/8/6 6:31:08

1. 从“自嗨”到“协同”:AI Agent的成人礼如果你最近在折腾AI Agent,大概率会和我有一样的感受:这东西太“聪明”了,又太“笨”了。让它写个代码、分析个文档,它能给你整得明明白白,像个不知疲倦的超级实习…

普渡机器人亮相WAIC 2026,“一脑多形”构建面向未来的机器人智能底座

普渡机器人亮相WAIC 2026,“一脑多形”构建面向未来的机器人智能底座

2026/8/6 6:31:08

7月17日,2026世界人工智能大会暨人工智能全球治理高级别会议在上海开幕。本届大会以“智能伙伴,共创未来”为主题。作为全球商用服务机器人领军企业,普渡机器人于大会首日举办“从服务世界到智造未来——普渡AI技术灯塔沟通会”,系…

Kadane算法与前缀和:二维矩阵最大子矩阵和的高效解法

Kadane算法与前缀和:二维矩阵最大子矩阵和的高效解法

2026/8/6 6:21:07

1. 项目概述:从一维到二维的“最大和”探索在数据处理和算法面试中,我们经常遇到一个经典问题:在一个一维数组中,如何找到和最大的连续子数组?这个问题有一个优雅的解决方案——Kadane算法。但现实世界的数据往往是多维…

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案

2026/8/4 15:23:37

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾经从网易云音乐下载了心爱的歌曲&am…

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比

2026/8/5 6:02:27

分布式配置中心选型实战:Nacos与Consul在创业场景下的对比工程导读:本文深入讨论 分布式配置中心选型实战:Nacos与Consul在创业场景下的对比 在生产工程实践中的核心落地方案。基于 分布式架构与微服务设计 视角,剖析实际痛点、架…

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

2026/8/5 8:19:55

MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案 【免费下载链接】MoneyPrinterPlus AI一键批量生成各类短视频,自动批量混剪短视频,自动把视频发布到抖音,快手,小红书,视频号上,赚钱从来没有这么容易过! 支持本地语音模型chatTTS,fasterwhisper,…

Unity相机抖动插件Camera-Shake集成与应用实战指南

Unity相机抖动插件Camera-Shake集成与应用实战指南

2026/8/6 0:00:51

1. 项目概述与核心价值最近在做一个动作游戏,需要给主角的重击和爆炸场景加点料,让打击感更足。我第一时间就想到了给相机加个抖动效果,毕竟这是提升玩家沉浸感最简单直接的手段之一。自己手写一个也不是不行,但时间成本高&#x…

Cocos Creator 3.7微信小游戏开发:从架构设计到提审上线的全流程实战指南

Cocos Creator 3.7微信小游戏开发:从架构设计到提审上线的全流程实战指南

2026/8/6 0:00:51

1. 项目概述:为什么需要一份3.7版本的专属适配指南?如果你是一位使用Cocos Creator开发微信小游戏的开发者,并且项目正运行在3.7版本上,那么你很可能已经感受到了那份“甜蜜的烦恼”。一方面,Cocos Creator 3.7是一个功…

AI编程实战:从Prompt工程到工具链集成,打造高效开发工作流

AI编程实战:从Prompt工程到工具链集成,打造高效开发工作流

2026/8/6 0:00:51

1. 项目概述:一次开源AI编程课程的深度重构 最近,我把自己的开源AI编程课程《Claude Code》做了一次从里到外的大更新。如果你对利用Claude、Codex这类大模型来辅助编程感兴趣,或者正在寻找一个能跟上最新AI编码工具迭代节奏的学习路径&#…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/6 5:43:30

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/4 14:25:14

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/4 15:11:03

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…