在Ubuntu 22.04上部署MySQL 8.0与Ollama大模型服务的完整指南

云信安装大师
90
AI 质量分
11 5 月, 2025
4 分钟阅读
0 阅读

在Ubuntu 22.04上部署MySQL 8.0与Ollama大模型服务的完整指南

引言

本文将指导您在Ubuntu 22.04系统上完成两个重要服务的部署:MySQL 8.0数据库和Ollama大模型服务。MySQL是广泛使用的关系型数据库,而Ollama则是一个强大的本地大语言模型运行框架。通过本教程,您将学会如何正确安装、配置这两个服务,并确保它们能够协同工作。

准备工作

在开始之前,请确保您拥有:

  1. 一台运行Ubuntu 22.04的计算机或服务器
  2. 管理员权限(能够使用sudo命令)
  3. 至少16GB内存(运行大语言模型的推荐配置)
  4. 稳定的网络连接

第一部分:安装MySQL 8.0

步骤1:更新系统包索引

首先更新您的系统包列表以确保获取最新的软件版本:

代码片段
sudo apt update
sudo apt upgrade -y

步骤2:安装MySQL服务器

Ubuntu 22.04的默认仓库中包含MySQL 8.0:

代码片段
sudo apt install mysql-server -y

步骤3:安全配置MySQL

运行安全安装脚本:

代码片段
sudo mysql_secure_installation

按照提示操作:
1. 设置root密码(建议使用强密码)
2. 移除匿名用户(选择Y)
3. 禁止root远程登录(选择Y)
4. 移除测试数据库(选择Y)
5. 重新加载权限表(选择Y)

步骤4:验证MySQL安装

检查MySQL服务状态:

代码片段
sudo systemctl status mysql

应该看到”active (running)”状态。如果没有自动启动,可以手动启动:

代码片段
sudo systemctl start mysql
sudo systemctl enable mysql

步骤5:创建专用数据库用户(可选)

建议为应用创建专用用户而非使用root:

代码片段
sudo mysql -u root -p

在MySQL提示符下执行:

代码片段
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'your_strong_password';
GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

MySQL常见问题解决

问题1:无法以root身份登录
解决方案:使用sudo前缀连接:

代码片段
sudo mysql -u root

然后修改认证方式:

代码片段
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';
FLUSH PRIVILEGES;

问题2:内存占用过高
解决方案:编辑配置文件/etc/mysql/my.cnf,在[mysqld]部分添加:

代码片段
innodb_buffer_pool_size = 256M
key_buffer_size = 128M

然后重启服务:

代码片段
sudo systemctl restart mysql

MySQL性能优化建议

  1. 调整缓冲池大小:根据服务器内存调整innodb_buffer_pool_size
  2. 启用慢查询日志:有助于识别性能瓶颈
    在my.cnf中添加:

    代码片段
    slow_query_log = 1
    slow_query_log_file = /var/log/mysql/mysql-slow.log
    long_query_time = 2<br>
    
  3. 定期优化表
    代码片段
    OPTIMIZE TABLE your_table_name;<br>
    

MySQL备份策略示例

创建每日自动备份脚本/usr/local/bin/mysql_backup.sh:

代码片段
#!/bin/bash

DATE=$(date +%Y%m%d)
BACKUP_DIR="/var/backups/mysql"
MYSQL_USER="backupuser"
MYSQL_PASSWORD="your_password"

mkdir -p $BACKUP_DIR/$DATE

databases=$(mysql -u$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|sys)")

for db in $databases; do
    mysqldump --force --opt --user=$MYSQL_USER --password=$MYSQL_PASSWORD --databases $db | gzip > "$BACKUP_DIR/$DATE/$db.sql.gz"
done

find $BACKUP_DIR/* -type d -ctime +30 | xargs rm -rf

设置定时任务(每天凌晨2点执行):

代码片段
(crontab -l ; echo "0 2 * * * /usr/local/bin/mysql_backup.sh") | crontab -
chmod +x /usr/local/bin/mysql_backup.sh

MySQL监控工具推荐

  1. mysqladmin:内置监控命令
    代码片段
    mysqladmin -u root -p status extended-status processlist <br>
    
  2. mytop:类似top的MySQL监控工具
    代码片段
    sudo apt install mytop 
    mytop -u root -p your_password <br>
    
  3. Prometheus + Grafana:可视化监控方案

Ollama大模型服务部署指南

Ollama简介与准备工作

Ollama是一个强大的本地大语言模型运行框架,支持多种开源模型如Llama、Mistral等。它提供了简单易用的API接口,适合开发者快速集成AI能力到应用中。

Ollama硬件要求

  • CPU: x86-64架构,建议至少8核
  • 内存:
    7B参数模型: ≥16GB
    13B参数模型: ≥32GB
    70B参数模型: ≥64GB
  • GPU(可选): NVIDIA显卡(CUDA支持)可大幅提升推理速度

Ollama软件依赖

确保系统已安装:

  1. curl工具:
代码片段
sudo apt install curl 
  1. NVIDIA驱动(如使用GPU):
代码片段
nvidia-smi #验证驱动安装 
  1. Docker(可选):
代码片段
sudo apt install docker.io 

Ollama安装步骤

Step1:下载安装Ollama

官方提供一键安装脚本:

代码片段
curl https://ollama.ai/install.sh | sh 

此脚本会自动:
– 检测系统架构
– 下载最新版本
– 设置systemd服务
– 创建ollama用户组

Step2:启动Ollama服务

安装完成后自动启动服务,也可手动控制:

代码片段
#查看状态 
systemctl status ollama 

#启动服务 
sudo systemctl start ollama 

#设置开机自启 
sudo systemctl enable ollama 

#查看日志(重要) 
journalctl -u ollama.service -f 

常见错误排查:
端口冲突: Ollama默认使用11434端口,检查是否被占用:
netstat -tulnp | grep :11434
权限问题: ollama需要访问GPU设备:
ls /dev/nvidia*应显示设备文件

Step3:验证安装成功

运行简单命令测试:

代码片段
ollama list #应返回空列表(尚未下载模型) 

ollama pull llama2 #下载官方测试模型 

ollama run llama2 #交互式对话测试 

> Hello #输入测试内容应得到合理回复 

首次运行会自动下载约4GB的模型文件,请耐心等待。

Ollama高级配置

GPU加速配置(如有NVIDIA显卡)

编辑配置文件:

代码片段
sudo nano /etc/systemd/system/ollama.service.d/environment.conf 

[Service] 
Environment="OLLAMA_NO_CUDA=0" #启用CUDA加速 

Environment="PATH=/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" #CUDA路径 

Environment="LD_LIBRARY_PATH=/usr/local/cuda/lib64" #CUDA库路径 

Environment="NVIDIA_VISIBLE_DEVICES=all" #允许访问所有GPU设备 

Environment="NVIDIA_DRIVER_CAPABILITIES=compute,utility" #启用计算能力 

Environment="CUDA_VISIBLE_DEVICES=0" #指定使用的GPU编号(多卡情况) 

重新加载并重启服务:

“`bash
systemctl daemon-reload && systemctl restart ollama

nvidia-smi #应看到ollama进程占用GPU资源

Ollama自定义模型目录

默认模型存储在~/.ollama/models,可修改位置:

方法一:环境变量方式(临时)

“`bash
export OLLAMA_MODELS=/mnt/models && ollama run llama2

方法二:持久化配置(推荐)

编辑systemd覆盖配置:

“`bash
mkdir /etc/systemd/system/ollama.service.d && nano /etc/systemd/system/ollama.service.d/model-path.conf

[Service] Environment=”OLLAMA_MODELS=/mnt/models”

systemctl daemon-reload && systemctl restart ollama

注意事项:
1)新目录需提前创建并有写入权限:chown ollama:ollama /mnt/models
2)迁移已有模型:rsync -avz ~/.ollarma/models/* /mnt/models/

Ollma API访问控制

默认只监听本地127001接口要允许远程访问:

方法一临时测试环境(不安全):

启动时指定监听地址:

bash OLLAMA_HOST=0000 ollam serve &

方法二生产环境安全配置:

结合Nginx反向代理添加HTTPS和认证:

“ bash sudo apt install nginx certbot python3-certbot-nginx

certbot –nginx-d ollamadomaincom-d apiollamadomaincom “

Nginx配置示例(`/etc/nginx/sites-enabled/ollamaconf):

“ nginx server { listen443 ssl; server_name apiollamadomaincom;

sslcertificate/etc/letsencrypt/live/apiollamadomaincom/fullchainpem; sslcertificate_key/etc/letsencrypt/live/apiollamadomaincom/privkeypem;

location/{ proxypass http://localhost11434; proxysetheader Host$host; proxysetheader XRealIP$remoteaddr;

authbasic”Restricted Access”; authbasicuserfile/etc/nginx/.htpasswd; } } “

生成密码文件:

bash sudo sh-c "echo-B username >> etcnginxhtpasswd"

重载Nginx:

bash sudo nginx-t && sudo nginx-s reload

这样可通过https://username:password@apiollamadomain.com安全访问API。

Ollma常用操作命令大全

基础命令:
pull <model>下载指定模型(如llamazipmistral)
list显示已下载的本地模型列表• run <model>交互式对话模式• ps查看正在运行的模型实例• stop <model>停止指定模型的运行实例

高级命令:
create <model>Modelfile从Modelfile自定义创建新变体• show <model>--modelfile查看模型的原始定义• copy <source> <target>复制已有模型为新名称• delete <model>删除本地存储的特定模型

API调用示例:
bash curl http://localhost11434/api/generate-d '{ "model":"llamazip", "prompt":"为什么天空是蓝色的?", "stream":false }'

Python客户端示例:
python import requests response=requestspost('http://localhost11434/api/generate', json={ 'model':'mistral', 'prompt':'用Python写一个快速排序算法', }) print(responsejson())

批量处理脚本示例(`batchprocesssh):#!/bin/bash while read line;do response=$(curl-s http://localhost11434/api/generate-d \ “{ \”model\”:\”mistral\”, \”prompt\”:\”$line\”, \”stream\”:false }”) echo “$line => $(jq-r ‘.response’ <<< “$response”)” doneoutputtxt “

通过以上完整指南您已经掌握了在Ubuntu2204上部署MySQL80和Ollma大语言模型的全部关键技能。这两个服务的组合可以为您的应用提供强大的结构化数据存储和智能文本处理能力。

原创 高质量