活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      文档中心

      弹性云主机

      弹性云主机

        • 产品动态
        • 新手指引
        • 操作导航
        • 新手入门:购买并登录Windows弹性云主机
        • 新手入门:购买并登录Linux弹性云主机
        • DeepSeek专题
        • DeepSeek专题导航
        • 图解DeepSeek与公有云深度融合
        • 从基础设施到智能中枢:DeepSeek如何重塑公有云服务价值链
        • 高性能GPU云主机助力DeepSeek深度应用
        • 天翼云SD-WAN与DeepSeek超强联动,开启云上高效互联新时代
        • 实践指南:DeepSeek驱动高效能云生态
        • GPU云主机/弹性云主机:零基础搭建DeepSeek云端环境指南
        • 在天翼云使用Ollama运行DeepSeek的最佳实践-7B等版本
        • 基于OpenWebUI+Ollama+DeepSeek实现大模型私有知识库零代码构建的最佳实践
        • 基于DeepSeek和Chroma构建个性化知识库的最佳实践
        • 基于LLaMA-Factory微调DeepSeek-R1-Distill-Qwen-7B最佳实践
        • 基于Open WebUI实现DeepSeek API调用及外部大模型API接入最佳实践
        • AnythingLLM 协同 Ollama 启用 DeepSeek 大模型最佳实践
        • CherryStudio 协同 Ollama 启用 DeepSeek 大模型
        • 天翼云CPU实例部署DeepSeek-R1模型最佳实践
        • GPU物理机:物理机搭建DeepSeek指南
        • SD-WAN跨境:SD-WAN助力DeepSeek模型定向加速
        • 智算容器:云容器引擎与DeepSeek融合实践
        • 函数计算:天翼云函数计算与DeepSeek大模型
        • Q&A:典型问题解析与策略应对
        • 产品概述
        • 产品定义
        • 术语解释
        • 产品优势
        • 弹性云主机选型
        • 功能特性
        • 产品应用场景
        • 产品使用须知
        • 产品使用限制
        • 云主机与其他服务之间的关系
        • 产品规格
        • 规格说明
        • 规格族
        • 通用云主机
        • 概述
        • 通用型
        • 计算型
        • 内存型
        • 增强型
        • 本地盘云主机
        • GPU云主机
        • 国产云主机
        • 鲲鹏系列
        • 海光系列
        • 飞腾系列
        • 经济型云主机
        • 镜像
        • 镜像类型
        • Cloud-init
        • 网络
        • 云硬盘
        • 地域和可用区
        • 购买指南
        • 计费说明
        • 计费项及其计费方式
        • 价格与折扣
        • 计费模式
        • 按量计费模式
        • 包年包月计费模式
        • 变更配置
        • 变更配置概述
        • 支持变配的实例规格
        • 云主机冷变配规则说明
        • 云主机热变配规则说明
        • 续费说明
        • 规则说明
        • 手动续订
        • 自动续订
        • 退费说明
        • 规则说明
        • 退费流程
        • 包周期按量互转
        • 成本优化
        • 计费FAQ
        • 快速入门
        • 注册账号
        • 创建弹性云主机
        • 登录Linux弹性云主机
        • 登录Windows弹性云主机
        • 初始化数据盘
        • 入门实践
        • 修订记录
        • 用户指南
        • 云主机实例
        • 实例生命周期
        • 查看实例
        • 查看实例状态
        • 查看实例详情
        • 导出实例信息
        • 搜索实例
        • 登录实例
        • 登录Windows弹性云主机实例
        • Windows弹性云主机登录方式概述
        • Windows弹性云主机控制中心远程登录(VNC方式)
        • 远程桌面连接(MSTSC方式)
        • 在Linux主机上登录Windows云主机
        • 在移动设备上登录Windows云主机
        • Mac OS系统登录Windows云主机
        • 登录Linux弹性云主机实例
        • Linux弹性云主机登录方式概述
        • Linux弹性云主机远程登录(VNC方式)
        • SSH密钥方式登录
        • SSH密码方式登录
        • 在移动设备上登录Linux云主机
        • Mac OS系统登录Linux云主机
        • 管理远程登录用户
        • 管理实例属性
        • 修改实例名称
        • 修改主机名称(hostname)
        • 批量设置有序的实例名称或主机名称
        • 修改实例描述
        • 更改实例时区
        • 开启和关闭实例保护功能
        • 配置主机名与IP地址的映射
        • 实例自定义数据注入
        • 实例自定义元数据
        • 管理实例状态
        • 开机实例
        • 关机实例
        • 重启实例
        • 重装操作系统
        • 变更规格
        • 创建相同配置实例
        • 克隆实例
        • 管理云主机组
        • 安装驱动和工具包(可选)
        • NVIDIA驱动安装指引
        • 创建配备GPU驱动的GPU云主机(Linux)
        • 安装GRID驱动
        • 卸载GRID驱动
        • 安装Tesla驱动
        • 卸载Tesla驱动
        • 使用可信云主机
        • 云主机启动模版
        • 创建云主机启动模版
        • 查看云主机启动模版
        • 修改云主机启动模版
        • 使用云主机启动模版创建云主机
        • 删除云主机启动模版
        • 云主机镜像
        • 镜像概述
        • 通过镜像创建云主机
        • 通过云主机创建Windows私有镜像
        • 通过云主机创建Linux私有镜像
        • 镜像更多操作
        • 云硬盘
        • 云硬盘概述
        • 创建云硬盘
        • 挂载数据盘
        • 卸载数据盘
        • 扩容云硬盘
        • 加密云硬盘
        • 云硬盘加密概述
        • 管理加密云硬盘
        • 随主机释放设置
        • 弹性IP
        • 弹性IP概述
        • 绑定弹性IP
        • 解绑弹性IP
        • 更换弹性IP
        • 修改弹性IP带宽
        • 使用SNAT访问公网
        • 密码和密钥对
        • 密码
        • 密码使用场景介绍
        • 在控制台重置密码
        • 密钥对
        • 密钥对使用场景介绍
        • 在控制台创建密钥对
        • 导入密钥对
        • 为云主机绑定/更换密钥对
        • 为云主机解绑密钥对
        • 网卡
        • 弹性网卡概述
        • 创建弹性网卡
        • 管理弹性网卡
        • 修改弹性网卡基本信息、分配IPv6、辅助私网IP
        • 如何修改内网IP、切换VPC
        • 开启网卡多队列功能
        • 虚拟IP概述
        • IPv6带宽
        • 云主机备份
        • 备份弹性云主机
        • 文件系统
        • 一键挂载文件系统
        • 监控
        • 监控弹性云主机
        • 监控Agent概览
        • 监控Agent版本说明
        • 安装监控Agent
        • 云主机支持的操作系统监控指标(安装监控Agent)
        • 设置告警规则
        • 查看监控指标
        • 安全
        • 提升云主机安全的方法
        • 服务的访问控制
        • 安全组
        • 安全组概述
        • 安全组配置示例
        • 配置安全组规则
        • 修改安全组规则
        • 更改安全组
        • 数据保护技术
        • Hypervisor安全
        • 用户加密
        • 重点操作短信二次验证
        • 验证规则
        • 开启重点操作短信验证
        • 关闭重点操作短信验证
        • 故障恢复
        • 云服务器CTIAM
        • 统一身份认证IAM介绍
        • 通过IAM用户控制资源访问
        • 迁移
        • 迁移云主机实例
        • 迁移本地盘云主机数据
        • 运维
        • 云助手
        • 云助手产品介绍
        • 安装云助手客户端
        • 购买指南
        • 创建命令
        • 免登录执行命令
        • 查看命令执行结果
        • 查看和执行公共命令
        • 上传文件
        • 查看文件上传结果
        • 资源与标签
        • 标签管理
        • 标签概述
        • 标签设计原则及示例
        • 绑定标签
        • 使用标签筛选资源
        • 解绑标签
        • 云主机服务委托
        • 配额调整
        • 云主机快照
        • 云主机快照管理
        • 云主机快照策略
        • 常见问题
        • 高频常见问题
        • 地域与可用区类
        • 如何选择地域?
        • 地域之间是否存在差异?
        • 已购买的弹性云主机,是否支持更换地域?
        • 什么是可用区,怎样选择可用区?
        • 可用区之间的数据传输是否需要收费?
        • 是否可以将应用的不同组件分散部署到不同的地域?
        • 是否提供应用灾备的相关服务?
        • 是否可以在不同的地域之间实施应用灾备?
        • 如何获取弹性云主机的物理机房位置?
        • 购买与退订冻结相关问题
        • 弹性云主机提供哪些计费方式,区别是什么?
        • 同一台云主机是否同时支持两种计费方式?
        • 是否支持更改已有云主机的计费方式?
        • 账户里面有余额,为什么无法创建按量付费云主机?
        • 弹性云主机关机后还会继续计费吗?
        • 一个账户最多可以创建多少按量付费的云主机?
        • 如何选择适合业务的云主机实例?
        • 购买实例时,资源已经售罄怎么办?
        • 什么是ARM CPU架构与X86 CPU架构?
        • 控制台无法看到云主机,如何处理?
        • 如何处理支付订单后云主机开通失败?
        • 申请开通弹性云主机需要多久?
        • 什么情况下弹性云主机会被冻结,冻结后怎么办?
        • 如何退订弹性云主机?
        • 已到期资源如果续订,续订周期如何计算?
        • 是否支持账户余额变动提醒?
        • 弹性云主机怎样停止计费?
        • 创建与删除
        • 创建类
        • 删除类
        • 登录与连接
        • VNC登录类
        • VNC方式登录后,播放音频文件没有声音怎么办?
        • 如何修改Windows弹性云主机的分辨率
        • 怎样修改远程登录的端口?
        • 修改Linux弹性云主机的默认SSH端口后,使用新端口无法登录?
        • 使用 VNC远程登录,想要复制本地字符发送到虚机中,发现一次性无法达到描述的3000个字符
        • VNC方式登录弹性云主机后,较长时间不操作,界面无响应怎么办
        • 控制台登录类
        • VNC方式登录弹性云主机时,登录界面显示乱码怎么办?
        • 通过控制台登录弹性云主机时提示1006或1000怎么办?
        • VNC方式登录弹性云主机时,系统黑屏输入无反应?
        • VNC方式登录弹性云主机后,查看数据失败,VNC无法正常使用?
        • 登录前准备类
        • 使用创建时的用户名和密码无法SSH方式登录云主机
        • 远程登录时需要输入的帐号和密码是什么
        • 弹性云主机登录前准备工作有哪些
        • 远程登录忘记密码怎么办
        • 远程连接类
        • MSTSC方式登录Windows 2012的弹性云主机,登录失败怎么办?
        • Windows 2012系统卸载某些软件后无法进入系统桌面怎么办?
        • 远程登录弹性云主机时,对浏览器版本的要求?
        • 使用私有镜像创建Windows弹性云主机时设置的密码不生效怎么办?
        • 弹性云主机实例出现了异地登录怎么办
        • 无法远程登录Windows云主机怎么办
        • 无法远程登录Linux云主机怎么办
        • 规格变更类
        • 弹性云主机怎样变更规格
        • 国产化云主机变配有什么限制
        • 主机升配后CPU的ID是否会变化
        • Windows弹性云主机变更规格后磁盘脱机怎么办?
        • Linux弹性云主机变更规格后磁盘脱机怎么办?
        • 弹性云主机变配操作无法成功提交
        • 使用故障类
        • 弹性云主机使用时有什么限制
        • 宿主机故障时,弹性云主机是否能自动恢复
        • 如何处理管理控制台异常提示信息
        • 如何修改弹性云主机(Windows)的SID
        • Windows弹性云主机没有声音
        • 弹性云主机配置的邮件无法正常发送
        • 使用free -m命令查询弹性云主机内存大小与实际配置不符
        • linux虚机内关键文件路径
        • 鲲鹏、海光、飞腾系列云主机挂载云硬盘和弹性网卡异常
        • 操作系统管理
        • 图形化系统安装类
        • 云主机是否有图形界面
        • CentOS 7系列弹性云主机如何安装图形化界面
        • CentOS 8系列弹性云主机如何安装图形化界面
        • Ubuntu系列弹性云主机如何安装图形化界面
        • Debian系列弹性云主机安装图形化界面流程
        • 操作系统故障类
        • 针对Intel处理器芯片存在的Meltdown和Spectre安全漏洞,应该如何规避?
        • 如何开启CentOS操作系统的SELinux功能?
        • 怎样查看GPU加速型云主机的GPU使用率?
        • Linux弹性云主机如何升级内核?
        • 用户自持镜像导致的弹性云主机操作系统无法正常启动是什么原因?
        • 文件系统损坏,Linux弹性云主机启动失败
        • 文件系统checkfs使用 fsck 工具检查并修复文件系统
        • 重装操作系统
        • 重装弹性云主机时是否可以选择其他操作系统
        • 重装操作系统需要多长时间?
        • 用户能否自己安装或者升级操作系统
        • 重装/切换操作系统/变更规格对磁盘数据有影响吗
        • 文件上传/数据传输
        • 使用FTP上传文件时写入失败、文件传输失败
        • WinSCP无法连接到Linux云主机
        • Windows云主机搭建了FTP,通过公网无法访问
        • 使用FTP上传文件时客户端连接服务端超时
        • 本地Windows主机通过MSTSC上传文件到Windows云主机
        • 本地Windows主机使用对象存储上传文件到Windows云主机
        • 本地Windows主机使用WinSCP上传文件到Linux云主机
        • 本地MacOS系统主机上传文件到Windows云主机
        • 本地Linux主机使用SCP上传文件到Linux云主机
        • 本地Linux主机使用SFTP上传文件到Linux云主机
        • 本地Windows主机使用FTP上传文件到Windows/Linux云主机
        • 本地Linux主机使用FTP上传文件到Linux云主机
        • 怎样在本地主机和Windows云主机之间互传数据?
        • FTP服务器上的文件夹因权限访问出错怎么办?
        • 迁移云服务器
        • 弹性云主机可以迁移到其他地域/帐号吗?
        • 镜像源管理
        • 内网yum源及NTP配置
        • Windows或Linux操作系统镜像怎么选
        • 常见docker源配置指导
        • 磁盘管理类
        • 磁盘分区与虚拟内存类
        • 磁盘扩容类
        • 卸载云硬盘操作指南及故障排除
        • 其它
        • 密码与密钥对类
        • 密码
        • 云主机默认密码是多少?
        • 忘记天翼云账号密码怎么办?
        • 如何在控制台重置弹性云主机密码?
        • 如何在操作系统内部修改云主机密码?
        • 用户创建弹性云主机成功后远程登录提示密码错误?
        • 一键重置密码后无法使用新密码登录弹性云主机
        • 用户未修改密码,正常使用弹性云主机一段时间后无法登录
        • 如何关闭Selinux?
        • 密钥对
        • 如何创建密钥对?
        • 如何使用密钥对?
        • 密钥对无法下载
        • 无法导入密钥对
        • 怎样查询弹性云主机使用的密钥对是哪个?
        • 已开云主机是否还支持使用密钥对?
        • 如何在云主机上使用安装USB类型的Ukey秘钥?
        • 弹性云主机中使用cloudbase-init是什么?
        • Python升级导致Cloud-init不工作
        • 使用密钥文件无法正常登录Linux弹性云主机
        • 通过puttygen.exe工具创建的密钥对,导入管理控制台失败
        • 网络配置类
        • 弹性IP类
        • DNS与NTP配置类
        • 配置DNS
        • 怎样配置弹性云主机的DNS和NTP信息?
        • 网卡类
        • 弹性云主机添加网卡后是否会自动启动?
        • 怎样修改云主机的VPC网段、子网的网段?
        • 路由类
        • iptables如何配置、建议配置规则指导
        • 访问网站或应用故障类
        • 其它类
        • 云主机mac是否为固定的?
        • DHCP无法正常获取内网IP?
        • 如何查看、修改Linux弹性云主机的内核参数?
        • 端口映射配置
        • 如何查看云主机的mac地址?
        • 不同帐号下弹性云主机内网是否可以互通?
        • 我购买的云主机是否在同一子网?
        • 云主机网络优化方案
        • 如何排查带宽超过限制
        • 安全类
        • 怎么设置云主机密码可以在一定程度上提升云主机安全
        • 安全组和安全规则配额是多少
        • 安全组加规则报错:参数错误,请检查你的参数
        • 如何关闭重点操作短信验证
        • 弹性云主机上是否可以搭建数据库
        • 如何保护弹性云主机安全
        • 如何防止实例被暴力破解
        • 云主机卡顿
        • Windows云主机卡顿
        • Linux云主机卡顿
        • 数据库应用
        • 弹性云主机是否支持Oracle数据库?
        • 云主机快照常见问题
        • 监控类
        • 云主机无监控数据如何处理
        • 如何重启监控Agent
        • 监控Agent自动退出如何处理
        • 产品咨询类
        • 怎样注册天翼云
        • 弹性云主机可以做什么
        • 私有数据是否支持物理邮寄
        • 升级CPU、内存、带宽时是否需要关机
        • Linux虚机product_uuid参数是否可以修改
        • 香港节点的云主机是否可以实现与国内云主机互通
        • 云主机windows 2019操作系统对应普通电脑哪个操作系统
        • 其它类
        • 云助手常见问题
        • 故障修复
        • 高频故障案例
        • Linux操作系统执行passwd命令重置密码失败提示:Authentication token manipulation error
        • 云主机错误状态及解决方案
        • 如何解决云平台创建云主机状态错误
        • 云主机端口不通怎样排查?
        • 云主机网络延迟和丢包,如何定位
        • 弹性云主机启动缓慢
        • ping不通或丢包时如何进行链路测试?
        • 云主机带宽占用高怎么办
        • Linux系统云主机如何自查病毒及中病毒后处理建议
        • Windows系统云主机如何自查病毒及中病毒后处理建议
        • 操作系统类(Windows)
        • 云主机时间与标准时间不一致
        • Windows弹性云主机蓝屏如何处理
        • Windows弹性云主机配置双网卡外网访问
        • Windows无法正常启动时怎样恢复数据?
        • 如何查看Windows云主机的登录日志?
        • CentOS设置系统时区
        • 启动Tomcat时报错,提示80端口被占用怎么办?
        • 怎样实现Windows云主机文件共享?
        • 输入法无法使用怎么办?
        • windows操作系统下卸载云硬盘操作指南及故障排除
        • 怎样设置Windows弹性云主机首选语言
        • Windows云主机配置文件共享和网络磁盘映射方法
        • Windows云主机如何保持会话连接长时间不断开?
        • Windows弹性云主机不能复制粘贴内容?
        • 云主机错误状态处理方式
        • 弹性云主机配置的邮件无法正常发送
        • 如何解决云平台创建云主机状态错误
        • 云主机错误状态及解决方案
        • 操作系统类(Linux)
        • 弹性云主机新内核启动失败如何设置使用第二内核启动
        • 为什么操作系统实际版本和购买时的镜像版本不一致?
        • 怎样配置Linux分析工具:atop和kdump
        • Ubuntu操作系统如何设置默认启动内核
        • Linux操作系统云主机安装Docker支持的操作系统版本
        • 弹性云主机IP地址丢失处理方法
        • 内核参数kernel.unknown_nmi_panic配置错误导致Linux弹性云主机异常重启
        • pip安装软件时出现错误:command ´gcc´ failed with exit status 1
        • CentOS云主机根目录设置成777权限后如何恢复?
        • Linux弹性云主机执行命令或启动服务时出现错误:Cannot allocate memory
        • 无法编辑fstab文件怎么办
        • 非root用户切root用户时,连接超时怎么办?
        • Web访问超时且系统日志打印:nf_conntrack: table full, dropping packet
        • 修改/etc/security/limits.conf文件,重启后不生效怎么办?
        • emergency mode(紧急模式)问题处理方法
        • 使用taskset命令让进程运行在指定CPU上
        • 弹性云主机中/etc/rc.local开机启动脚本不生效怎么办?
        • 网络配置
        • resolv文件被重置怎么办?
        • Linux系统重启后/etc/hosts自动添加主机名解析
        • CentOS 7重启后dhclient未运行,导致无法获取IP
        • Linux系统使用多网卡时网卡名称出现漂移
        • 同一子网的两块网卡均绑定弹性公网IP
        • 远程连接报错
        • 远程连接云主机出现蓝屏
        • 远程连接Windows云主机报错:出现身份验证错误,要求的函数不受支持
        • 天翼云Windows云主机远程连接时出现报错: 此计算机无法连接到远程计算机
        • 远程连接Windows云主机报错:没有远程登录的权限
        • 登录Windows云主机提示“内部错误”怎么办?
        • 远程连接Windows云主机报错:无法验证此远程计算机的身份
        • Windows云主机远程连接时出现报错:RDP连接断开,出现内部错误
        • Windows云主机远程连接时出现报错:您的连接已丢失
        • Windows云主机报错:您的凭据无法工作
        • 磁盘空间管理
        • Linux操作系统云主机中buffer和cache占用内存怎么办?
        • Linux文件系统提示:Read-only file system
        • Linux操作系统云主机磁盘分区提示空间不足怎么办?
        • 文件已经删除,但空间未释放怎么办?
        • Inode节点耗尽导致无法创建新文件问题处理
        • Linux如何创建swap分区/swap文件
        • GPU驱动故障
        • GPU驱动异常怎么办?
        • GPU实例启动异常,查看系统日志发现NVIDIA驱动空指针访问怎么办?
        • GPU设备显示异常
        • T4 GPU设备显示异常
        • G系列弹性云主机GPU驱动故障
        • GPU驱动不可用
        • SSH连接
        • /etc/passwd文件损坏导致云主机登录失败怎么办?
        • 怎样设置允许或禁止用户/IP通过SSH连接云主机?
        • Linux启动sshd服务出现/var/empty/sshd无法访问的解决方案
        • CentOS 7修改SSH默认端口后无法连接怎么办?
        • 开启UseDNS导致SSH连接缓慢怎么办?
        • 怎样禁用SSH密码方式连接云主机?
        • 怎样长时间保持SSH会话连接不断开?
        • 多用户登录
        • 配置多用户登录后,普通用户登录闪屏怎么办?
        • Windows云主机如何配置多用户登录?(Windows 2008)
        • 多用户登录Windows主机时无法打开浏览器
        • Windows云主机如何配置多用户登录?(Windows 2012)
        • 密码与密钥对
        • Linux 云主机怎样切换密钥登录为密码登录?
        • Linux云主机如何进入单用户模式重置root密码
        • 密钥对方式购买的弹性云主机,使用私钥文件获取登录密码失败
        • 使用密钥文件无法正常登录 Linux 弹性云主机
        • 如何更换密钥对
        • Linux云主机重置密码
        • 无法导入密钥对
        • 安装IIS服务
        • 怎样做网页定向?
        • IIS服务修改已绑定的网站域名
        • Windows云主机上安装IIS服务
        • 最佳实践
        • 创建云主机最佳实践
        • 为Windows Server添加AD、DHCP、DNS、IIS服务
        • 基于Tomcat构建Java web环境(CentOS 7.4)
        • Mysql数据库自建,使用,问题排查最佳实践
        • 典型网站类场景
        • 镜像部署Windows环境
        • 麒麟系统云主机配置图形化界面
        • 下载并安装SQL Server
        • 线下OpenStack环境导入公有云环境
        • 创建双栈云主机
        • 弹性云主机配置
        • 弹性云主机之间迁移最佳实践
        • Linux服务器SSH登录的安全加固
        • 使用VNC Viewer连接Linux云主机
        • Linux系统进入单用户模式
        • 修改云主机默认远程端口
        • 设置Windows操作系统首选语言
        • ECS安全组实践(入方向规则)
        • 针对云主机的最佳实践
        • 搭建微信公众号后台
        • 网站性能测试的最佳实践
        • 网络性能测试的最佳实践
        • 网站搭建指导
        • 手动部署Java Web
        • 基于天翼云ECS搭建Oracle RAC集群
        • 手动搭建LNMP环境
        • 快速构建FTP站点(Linux)
        • 快速构建FTP站点(Windows)
        • 搭建FTP
        • 手工部署RabbitMQ(CentOS 7.4)
        • 在天翼云上配置NTP服务器
        • 跨账号同区域迁移云主机
        • 手工搭建Ghost博客(Ubuntu 20.04)
        • 手工安装宝塔面板(CentOS7.2)
        • 通过配置监控Agent实现指定进程监控
        • 快速部署SD-WAN vCPE最佳实践
        • 部署Palworld幻兽帕鲁服务器最佳实践
        • 部署Palworld幻兽帕鲁服务器最佳实践(Ubuntu)
        • 部署Palworld幻兽帕鲁服务器最佳实践(Windows)
        • Palworld幻兽帕鲁世界参数修改最佳实践(Ubuntu)
        • Palworld幻兽帕鲁世界参数修改最佳实践(Windows)
        • Palworld幻兽帕鲁更新游戏最佳实践
        • 已有天翼云Ubuntu云主机,搭建幻兽帕鲁服务器
        • 已有天翼云Windows云主机,搭建幻兽帕鲁服务器
        • 大模型学习机最佳实践
        • 一键部署与登录Llama 3/Llama 2大模型学习机
        • 部署与登录Llama 3/Llama 2大模型学习机
        • 已有天翼云云主机,部署与登录Llama 3/Llama 2大模型学习机
        • 修改大模型学习机登录密码
        • 大模型学习机服务启停最佳实践
        • 大模型学习机图像生成最佳实践
        • 大模型学习机文本生成最佳实践
        • 大模型学习机文本生成模型微调最佳实践
        • 使用大模型学习机微调自己的文本生成模型
        • 使用大模型学习机微调自己的图像生成模型
        • AIGC实践
        • 在天翼云使用Ollama运行DeepSeek的最佳实践-7B等版本
        • 在天翼云使用vLLM运行DeepSeek的最佳实践-32B等版本
        • 基于DeepSeek和Chroma构建个性化知识库的最佳实践
        • 基于OpenWebUI+Ollama+DeepSeek实现大模型私有知识库零代码构建的最佳实践
        • 基于LLaMA-Factory微调DeepSeek-R1-Distill-Qwen-7B最佳实践
        • 基于CPU的AI推理加速技术在天翼云EMR云主机上的应用
        • 基于Open WebUI实现DeepSeek API调用及外部大模型API接入最佳实践
        • AnythingLLM 协同 Ollama 启用 DeepSeek 大模型最佳实践
        • CherryStudio 协同 Ollama 启用 DeepSeek 大模型
        • 天翼云CPU实例部署DeepSeek-R1模型最佳实践
        • Open WebUI 快速入门
        • 天翼云 GPU 云主机构建高性能 Deepseek 集群最佳实践-32B等版本
        • 使用云主机启动模版快速部署DeepSeek的最佳实践
        • 弹性伸缩搭配GPU云主机水平扩展最佳实践
        • 基于Anything LLM实现云主机外挂Embedding模型、向量数据库的最佳实践指南
        • Open WebUI及vLLM版本升级最佳实践
        • API参考
        • 调用前必知
        • 概述
        • 终端节点
        • 请求状态码
        • 状态枚举值
        • API概览
        • 如何调用API
        • 认证鉴权
        • 构造请求
        • Python调用示例
        • API
        • 2022-09-09
        • 新版
        • 云主机生命周期管理
        • 删除云主机及释放关联资源
        • 全部操作云主机
        • 创建相同配置的云主机
        • 批量释放云主机
        • 克隆云主机
        • 创建一台按量付费或包年包月的云主机
        • 批量创建按量付费或包年包月云主机
        • 续订一台包周期的云主机
        • 释放云主机
        • 云主机添加共享网卡
        • 节省关机一台云主机
        • 节省关机多台云主机
        • 开启一台云主机
        • 关闭一台云主机
        • 销毁一台包周期已退订云主机
        • 重启一台云主机
        • 重装一台云主机
        • 开启多台云主机
        • 关闭多台云主机
        • 重启多台云主机
        • 重装多台云主机
        • 云主机查询
        • 查询云主机支持的冷变配规格信息
        • 根据masterOrderID查询云主机ID
        • 查询一个异步任务的结果
        • 查询用户云主机统计信息
        • 查询云主机支持的热变配规格信息
        • 查询云主机的云硬盘列表
        • 查询用户云硬盘统计信息
        • 查询GPU云主机驱动版本
        • 查询云主机的WEB管理终端地址
        • 查询云主机的固定IP
        • 获取多台云主机的状态信息
        • 查询云主机列表
        • 查询一台或多台云主机详细信息
        • 查询一台云主机详细信息
        • 查询多个异步任务的结果
        • 查询一台云主机的自定义数据
        • 查询指定规格族下的云主机信息
        • 查询云主机规格族列表
        • 查询一个或多个云主机规格资源
        • 云主机修改信息
        • 编辑云主机标签
        • 批量绑定解绑云主机标签
        • 云主机热变配
        • 更新云主机的部分信息
        • 更新多台云主机的部分信息
        • 更新云主机密码
        • 更新云主机实例删除保护信息
        • 更新多台云主机的密码
        • 云主机修改带宽或规格
        • 云主机修改规格
        • 云主机修改带宽
        • 云主机委托管理
        • 云主机清除委托
        • 云主机绑定委托
        • 云主机组管理
        • 删除云主机组
        • 更新云主机组信息
        • 云主机组批量移除云主机
        • 云主机加入主机组校验
        • 云主机组中删除单台云主机
        • 云主机组中添加单台云主机
        • 创建云主机组
        • 查询云主机组内的云主机
        • 查询云主机所在云主机组
        • 查询云主机组列表或者详情
        • 快照管理
        • 快照任务管理
        • 查询云主机快照任务列表
        • 批量删除云主机快照
        • 快照策略管理
        • 修改云主机快照策略
        • 停用云主机快照策略
        • 创建云主机快照策略
        • 启用云主机快照策略
        • 快照策略绑定云主机
        • 快照策略解绑云主机
        • 查询云主机快照任务列表
        • 查询云主机快照策略列表
        • 查询云主机快照策略详情
        • 查询快照策略绑定云主机列表
        • 立即执行云主机快照策略
        • 删除云主机快照策略
        • 快照创建一台云主机
        • 云主机快照个数统计
        • 查询云主机快照详情
        • 云主机快照状态
        • 查询云主机快照列表
        • 删除云主机快照
        • 批量更新云主机快照信息
        • 更新云主机快照信息
        • 创建云主机快照
        • 恢复云主机快照
        • 密钥对管理
        • 绑定SSH密钥对到Linux云主机
        • 查询一个或多个密钥对
        • 创建一对SSH密钥对
        • 导入RSA密钥对
        • 删除SSH密钥对
        • 为云主机解绑SSH密钥对
        • 元数据管理
        • 批量删除云主机元数据
        • 云主机元数据创建
        • 云主机元数据查询
        • 云主机元数据更新
        • 云主机元数据删除
        • 文件系统
        • 查询文件系统关联虚机列表
        • 查询虚机绑定文件系统列表
        • 云主机挂载文件系统
        • 云主机卸载文件系统
        • 云主机备份管理
        • 云主机备份任务管理
        • 查询云主机备份任务列表
        • 云主机备份周期管理
        • 云主机备份统计
        • 备份创建一台云主机
        • 查询云主机备份状态
        • 查询云主机备份详情
        • 查询云主机备份列表
        • 删除云主机备份
        • 恢复云主机备份
        • 查看云主机备份空间占用大小
        • 云主机备份查询虚机磁盘大小
        • 云主机备份查询虚机
        • 创建云主机备份
        • 批量更新云主机备份信息
        • 更新云主机备份信息
        • 云主机备份策略管理
        • 创建云主机备份策略
        • 删除云主机备份策略
        • 修改启用停用云主机备份策略
        • 云主机立即备份
        • 备份策略绑定云主机
        • 备份策略解绑云主机
        • 云主机备份策略绑定存储库
        • 云主机备份策略解绑存储库
        • 查询云主机备份策略列表
        • 查询云主机备份策略绑定云主机信息
        • 云主机备份存储库管理
        • 退订云主机备份存储库
        • 续订云主机备份存储库
        • 查询云主机备份存储库
        • 创建云主机备份存储库
        • 扩容云主机备份存储库
        • 轻量型云主机
        • 轻量型云主机退订数据盘
        • 重装一台轻量型云主机
        • 轻量型云主机新建云硬盘
        • 创建轻量型云主机
        • 查询轻量型云主机列表
        • 查询轻量型主机详细信息
        • 续订一台包周期的轻量型云主机
        • 释放轻量型云主机
        • 查询一台轻量型云主机的Web管理终端地址
        • 开启一台轻量型云主机
        • 关闭一台轻量型云主机
        • 重启一台轻量型云主机
        • 更新一台轻量型云主机密码
        • 轻量型云主机规格套餐升级
        • 查询轻量型云主机的规格套餐资源
        • 公共接口
        • 查询虚机(云主机)规格
        • 资源池查询
        • 资源池产品可售状态查询
        • 查询账户资源池中可用区信息
        • 资源池列表查询
        • 资源池产品信息查询
        • 资源池可用区查询
        • 资源池概况信息查询
        • 用户已有资源查询
        • 用户配额查询
        • 根据订单号查询uuid
        • 新订单询价
        • 资源uuid续订询价
        • 资源uuid升级询价
        • 通用任务状态查询
        • 订单询价
        • 订单续订询价
        • 订单升级询价
        • 网络管理
        • 弹性网卡
        • 查询网卡列表
        • 查询网卡信息
        • 删除弹性公网IP
        • 创建弹性网卡
        • 删除弹性网卡
        • 修改网卡属性
        • 创建弹性公网IP
        • 网卡关联辅助私网IPs
        • 网卡解绑辅助私网IPs
        • 网卡关联多个IPv6地址
        • 网卡解绑多个IPv6地址
        • 网卡绑定云主机
        • 网卡解绑云主机
        • 安全组管理
        • 创建安全组
        • 查询用户安全组列表
        • 删除安全组
        • 创建安全组入向规则
        • 创建安全组出向规则
        • 修改安全组入方向规则
        • 修改安全组出方向规则
        • 删除安全组入方向规则
        • 删除安全组出方向规则
        • 绑定安全组
        • 解绑安全组
        • 查询用户安全组详情
        • 云主机监控
        • 查询云主机的CPU实时监控数据
        • 查询云主机的内存实时监控数据
        • 查询云主机的磁盘实时监控数据
        • 查询云主机的网卡实时监控数据
        • 查询指定时间段内的CPU监控数据
        • 查询指定时间段内的内存监控数据
        • 查询指定时间段内的磁盘监控数据
        • 查询指定时间段内的网卡监控数据
        • 云硬盘管理
        • 创建一块按量付费或包年包月云硬盘
        • 修改云硬盘属性
        • 云主机卸载云硬盘
        • 扩容云硬盘
        • 云主机挂载云硬盘
        • 释放一块包周期或按需付费的云硬盘
        • 云硬盘信息查询
        • 云助手
        • 云助手执行命令
        • 查询文件上传结果
        • 创建命令
        • 修改命令
        • 删除命令
        • 触发命令
        • 查询命令列表
        • 查询实例是否安装了云助手agent
        • 查询命令详情
        • 上传文件
        • 云助手查询结果
        • 文档下载
        • 文档下载
        • 视频专区
        • 相关协议
        • 弹性云主机产品服务协议
        • 弹性云主机服务等级协议
        • 弹性云主机产品个人信息保护声明
        • 关于禁止使用天翼云服务从事虚拟货币相关活动的声明
          无相关产品

          本页目录

          帮助中心弹性云主机最佳实践Mysql数据库自建,使用,问题排查最佳实践
          Mysql数据库自建,使用,问题排查最佳实践
          更新时间 2025-03-21 17:59:15
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          最近更新时间: 2025-03-21 17:59:15
          分享文章
          • 新浪微博
          • 微信
            扫码分享
          • 复制链接
          本文主要为您介绍Mysql数据库自建,使用,问题排查最佳实践。

          创建ECS并自建mysql服务器

          前提条件

          1.已创建ECS虚机,请参考指定ECS规格创建实例创建MySQL客户端的弹性云服务器。

          2.已下载MySQL客户端安装包,MySQL官网提供了针对不同操作系统的客户端安装包,单击此处下载8.0的最新版本,单击此处下载其他归档版本,用户需根据自己的操作系统类型选择符合要求的安装包。

          mysql部署

          系统设置

          确认系统及依赖库版本

          本篇使用OS镜像版本为CTyunOS 22.06.3

          [root@localhost ~]# cat /etc/ctyunos-release
          CTyunOS release 22.06.3
          
          [root@localhost ~]# ldd --version
          ldd (GNU libc) 2.28
          Copyright (C) 2018 Free Software Foundation, Inc.
          This is free software; see the source for copying conditions.  There is NO
          warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
          Written by Roland McGrath and Ulrich Drepper.
          

          确认mysql版本

          二进制搭建,mysql 对应的 OS Version 必须和操作系统依赖库版本保持一致,找到对应版本进行下载。

          image.png

          防火墙及SELinux

          [root@localhost ~]# systemctl disable firewalld --now #关闭并禁用防火墙
          
          [root@localhost ~]# setenforce 0 #关闭selinux
          setenforce: SELinux is disabled
          
          [root@localhost ~]# sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config #配置持久化
          

          创建用户及目录

          [root@localhost ~]# groupadd mysql
          
          [root@localhost ~]# useradd -r -g mysql -s /sbin/nologin mysql
          
          [root@localhost ~]# mkdir -p /mysql/install/data
          
          [root@localhost ~]# mkdir -p /mysql/install/tmp
          
          [root@localhost ~]# mkdir -p /mysql/install/file
          
          [root@localhost ~]# mkdir -p /mysql/install/log
          

          创建MySQL

          上传并解压

          [root@localhost install]# pwd
          /mysql/install
          
          [root@localhost install]# ls
          data  file  log  mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz  tmp
          
          [root@localhost install]# tar -xf mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz
          
          [root@localhost install]# ln -s mysql-8.4.0-linux-glibc2.28-x86_64 mysql  #创建软链接
          
          [root@localhost install]# ll
          total 459M
          drwxr-xr-x 2 root root    6 Oct  8 17:04 data
          drwxr-xr-x 2 root root    6 Oct  8 17:04 file
          drwxr-xr-x 2 root root    6 Oct  8 17:04 log
          lrwxrwxrwx 1 root root   34 Oct  8 17:08 mysql -> mysql-8.4.0-linux-glibc2.28-x86_64
          drwxr-xr-x 9 root root  129 Oct  8 17:07 mysql-8.4.0-linux-glibc2.28-x86_64
          -rw-r--r-- 1 root root 459M Oct  8 17:04 mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz
          drwxr-xr-x 2 root root    6 Oct  8 17:04 tmp
          

          环境变量

          [root@localhost install]# vi ~/.bash_profile
          
          #PATH 增加路径 /mysql/install/mysql/bin
          [root@localhost install]# cat ~/.bash_profile
          # .bash_profile
          
          # Get the aliases and functions
          if [ -f ~/.bashrc ]; then
          	. ~/.bashrc
          fi
          
          # User specific environment and startup programs
          
          PATH=$PATH:$HOME/bin
          PATH=$PATH:/mysql/install/mysql/bin:$HOME/bin
          export PATH
          
          
          [root@localhost install]# source ~/.bash_profile
          

          初始化配置文件

          #注意bind_address的IP地址和对应路径的修改
          cat <<EOF > /mysql/install/my.cnf
          [mysql]
          no-beep
          prompt="\u@mydb \R:\m:\s [\d]> "
          #no-auto-rehash
          auto-rehash
          default-character-set=utf8
          
          [mysqld]
          lower_case_table_names=1
          server-id=3306
          port=3306
          user = mysql
          bind_address= 192.168.2.134
          basedir=/mysql/install/mysql
          datadir=/mysql/install/data
          #socket = /mysql/install/mysql.sock
          socket = /tmp/mysql.sock
          pid-file = /mysql/install/mysql.pid
          character-set-server=utf8
          autocommit = 0
          #skip_name_resolve = 1
          max_connections = 800
          max_connect_errors = 1000
          default-storage-engine=INNODB
          transaction_isolation = READ-COMMITTED
          explicit_defaults_for_timestamp = 1
          sort_buffer_size = 32M
          join_buffer_size = 128M
          tmp_table_size = 72M
          max_allowed_packet = 16M
          #sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
          interactive_timeout = 1800
          wait_timeout = 1800
          read_buffer_size = 16M
          read_rnd_buffer_size = 32M
          
          #query_cache_type = 1
          #query_cache_size=1M
          table_open_cache=2000
          thread_cache_size=768
          myisam_max_sort_file_size=10G
          myisam_sort_buffer_size=135M
          key_buffer_size=32M
          read_buffer_size=8M
          read_rnd_buffer_size=4M
          
          back_log=1024
          #flush_time=0
          open_files_limit=65536
          table_definition_cache=1400
          #binlog_row_event_max_size=8K
          #sync_master_info=10000
          #sync_relay_log=10000
          #sync_relay_log_info=10000
          
          log-output=FILE
          general_log = 0
          general_log_file=/mysql/install/log/hiri-general.err
          slow_query_log = ON
          slow_query_log_file=/mysql/install/log/hiri-query.err
          long_query_time=10
          log-error=/mysql/install/log/hiri-error.err
          
          log_queries_not_using_indexes = 1
          log_slow_admin_statements = 1
          log_slow_slave_statements = 1
          log_throttle_queries_not_using_indexes = 10
          #expire_logs_days = 90
          #binlog_expire_logs_seconds=2592000
          binlog_expire_logs_seconds=604800
          min_examined_row_limit = 100
          
          log_bin=/mysql/install/log/hiri-binlog
          log_bin_index=/mysql/install/log/hiri-binlog.index
          binlog_format='ROW'
          binlog_rows_query_log_events=on
          
          #master_info_repository = TABLE
          #relay_log_info_repository = TABLE
          #log_bin = bin.log
          #sync_binlog = 1
          #gtid_mode = on
          #enforce_gtid_consistency = 1
          #log_slave_updates
          #binlog_format = row
          #relay_log = relay.log
          #relay_log_recovery = 1
          #binlog_gtid_simple_recovery = 1
          #slave_skip_errors = ddl_exist_errors
          
          innodb_io_capacity = 4000
          innodb_io_capacity_max = 8000
          innodb_buffer_pool_size = 500M
          innodb_buffer_pool_instances = 8
          innodb_buffer_pool_load_at_startup = 1
          innodb_buffer_pool_dump_at_shutdown = 1
          innodb_lru_scan_depth = 2000
          innodb_lock_wait_timeout = 5
          #innodb_flush_method = O_DIRECT
          
          innodb_log_file_size = 200M
          innodb_log_files_in_group = 2
          innodb_log_buffer_size = 16M
          
          #innodb_undo_logs = 128
          innodb_undo_tablespaces = 3
          innodb_undo_log_truncate = 1
          innodb_max_undo_log_size = 2G
          
          innodb_flush_neighbors = 1
          innodb_purge_threads = 4
          #innodb_large_prefix = 1
          innodb_thread_concurrency = 64
          innodb_print_all_deadlocks = 1
          innodb_strict_mode = 1
          innodb_sort_buffer_size = 64M
          innodb_flush_log_at_trx_commit=1
          innodb_autoextend_increment=64
          innodb_concurrency_tickets=5000
          innodb_old_blocks_time=1000
          innodb_open_files=65536
          innodb_stats_on_metadata=0
          innodb_file_per_table=1
          innodb_checksum_algorithm=0
          innodb_data_file_path=ibdata1:200M;ibdata2:200M;ibdata3:200M:autoextend:max:5G
          innodb_temp_data_file_path = ibtmp1:200M:autoextend:max:20G
          
          innodb_buffer_pool_dump_pct = 40
          innodb_page_cleaners = 4
          innodb_purge_rseg_truncate_frequency = 128
          binlog_gtid_simple_recovery=1
          log_timestamps=system
          #transaction_write_set_extraction=MURMUR32
          #default_authentication_plugin=mysql_native_password  #mysql 8.4版本之后不允许这样配置了,使用mysql_native_password=ON可以正常使用
          mysql_native_password=ON
          #default_authentication_plugin=caching_sha2_password
          EOF
          
          [root@localhost install]# chown -R mysql.mysql /mysql #修改mysql目录的属组和属主
          
          [root@localhost install]# ll
          total 459M
          drwxr-xr-x 2 mysql mysql    6 Oct  8 17:04 data
          drwxr-xr-x 2 mysql mysql    6 Oct  8 17:04 file
          drwxr-xr-x 2 mysql mysql    6 Oct  8 17:04 log
          -rw-r--r-- 1 mysql mysql 3.5K Oct  8 17:13 my.cnf
          lrwxrwxrwx 1 mysql mysql   34 Oct  8 17:08 mysql -> mysql-8.4.0-linux-glibc2.28-x86_64
          drwxr-xr-x 9 mysql mysql  129 Oct  8 17:07 mysql-8.4.0-linux-glibc2.28-x86_64
          -rw-r--r-- 1 mysql mysql 459M Oct  8 17:04 mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz
          drwxr-xr-x 2 mysql mysql    6 Oct  8 17:04 tmp
          

          初始化数据库

          [root@localhost install]# /mysql/install/mysql/bin/mysqld --defaults-file=/mysql/install/my.cnf --initialize --user=mysql --basedir=/mysql/install/mysql --datadir=/mysql/install/data
          
          [root@localhost log]# grep 'temporary password' /mysql/install/log/hiri-error.err
          2024-10-08T17:34:43.831698+08:00 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: ,H4xd+oy0M>t
          

          启库并修改密码

          [root@localhost install]# /mysql/install/mysql/bin/mysqld_safe --defaults-file=/mysql/install/my.cnf --datadir=/mysql/install/data --pid-file=/mysql/install/mysql.pid &
          [1] 2152
          [root@localhost install]# 2024-10-08T11:26:28.216260Z mysqld_safe Logging to '/mysql/install/log/hiri-error.err'.
          2024-10-08T11:26:28.470158Z mysqld_safe Starting mysqld daemon with databases from /mysql/install/data
          
          [root@localhost install]# mysqladmin -uroot -p',H4xd+oy0M>t' password 'redhat' -S /mysql/install/mysql.sock
          mysqladmin: [Warning] Using a password on the command line interface can be insecure.
          Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
          

          配置远程登录

          [root@localhost install]# ln -sf /mysql/install/mysql.sock /tmp/mysql.sock
          
          [root@localhost install]# mysql -uroot -predhat
          mysql: [Warning] Using a password on the command line interface can be insecure.
          Welcome to the MySQL monitor.  Commands end with ; or \g.
          Your MySQL connection id is 10
          Server version: 8.4.0 MySQL Community Server - GPL
          
          Copyright (c) 2000, 2024, Oracle and/or its affiliates.
          
          Oracle is a registered trademark of Oracle Corporation and/or its
          affiliates. Other names may be trademarks of their respective
          owners.
          
          Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
          
          mysql> show databases;
          +--------------------+
          | Database           |
          +--------------------+
          | information_schema |
          | mysql              |
          | performance_schema |
          | sys                |
          +--------------------+
          4 rows in set (0.02 sec)
          
          mysql> use mysql;
          Reading table information for completion of table and column names
          You can turn off this feature to get a quicker startup with -A
          
          Database changed
          mysql> select Host,User from user;
          +-----------+------------------+
          | Host      | User             |
          +-----------+------------------+
          | localhost | mysql.infoschema |
          | localhost | mysql.session    |
          | localhost | mysql.sys        |
          | localhost | root             |
          +-----------+------------------+
          4 rows in set (0.00 sec)
          
          mysql> create user 'root'@'%' identified by 'redhat'; #创建root用户并设置密码为redhat
          Query OK, 0 rows affected (0.09 sec)
          
          mysql> grant all privileges on *.* to 'root'@'%' with grant option; #赋予root用户所有权限
          Query OK, 0 rows affected (0.03 sec)
          
          mysql> flush privileges; #刷新权限使之生效
          Query OK, 0 rows affected (0.01 sec)
          
          mysql> select Host,User from user;
          +-----------+------------------+
          | Host      | User             |
          +-----------+------------------+
          | %         | root             |
          | localhost | mysql.infoschema |
          | localhost | mysql.session    |
          | localhost | mysql.sys        |
          | localhost | root             |
          +-----------+------------------+
          5 rows in set (0.00 sec)
          
          mysql> exit
          Bye
          

          连接测试

          image.png

          image.png

          配置启动服务

          在/mysql/install/mysql/support-files目录下,官方提供的有个脚本模板文件 mysql.server,可以拷贝一份起名叫mysql并修改脚本里面对应的路径和参数即可使用,这里已经改好的脚本内容如下:

          [root@localhost support-files]# vim mysql
          #!/bin/sh
          # Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB
          # This file is public domain and comes with NO WARRANTY of any kind
          
          # MySQL daemon start/stop script.
          
          # Usually this is put in /etc/init.d (at least on machines SYSV R4 based
          # systems) and linked to /etc/rc3.d/S99mysql and /etc/rc0.d/K01mysql.
          # When this is done the mysql server will be started when the machine is
          # started and shut down when the systems goes down.
          
          # Comments to support chkconfig on RedHat Linux
          # chkconfig: 2345 64 36
          # description: A very fast and reliable SQL database engine.
          
          # Comments to support LSB init script conventions
          ### BEGIN INIT INFO
          # Provides: mysql
          # Required-Start: $local_fs $network $remote_fs
          # Should-Start: ypbind nscd ldap ntpd xntpd
          # Required-Stop: $local_fs $network $remote_fs
          # Default-Start:  2 3 4 5
          # Default-Stop: 0 1 6
          # Short-Description: start and stop MySQL
          # Description: MySQL is a very fast and reliable SQL database engine.
          ### END INIT INFO
           
          # If you install MySQL on some other places than /usr/local/mysql, then you
          # have to do one of the following things for this script to work:
          #
          # - Run this script from within the MySQL installation directory
          # - Create a /etc/my.cnf file with the following information:
          #   [mysqld]
          #   basedir=<path-to-mysql-installation-directory>
          # - Add the above to any other configuration file (for example ~/.my.ini)
          #   and copy my_print_defaults to /usr/bin
          # - Add the path to the mysql-installation-directory to the basedir variable
          #   below.
          #
          # If you want to affect other MySQL variables, you should make your changes
          # in the /etc/my.cnf, ~/.my.cnf or other MySQL configuration files.
          
          # If you change base dir, you must also change datadir. These may get
          # overwritten by settings in the MySQL configuration files.
          
          basedir=/mysql/install/mysql
          datadir=/mysql/install/data
          
          # Default value, in seconds, afterwhich the script should timeout waiting
          # for server start. 
          # Value here is overriden by value in my.cnf. 
          # 0 means don't wait at all
          # Negative numbers mean to wait indefinitely
          service_startup_timeout=900
          
          # Lock directory for RedHat / SuSE.
          lockdir='/var/lock/subsys'
          lock_file_path="$lockdir/mysql"
          
          # The following variables are only set for letting mysql.server find things.
          
          # Set some defaults
          mysqld_pid_file_path=/mysql/install/mysql.pid
          if test -z "$basedir"
          then
            basedir=/mysql/install/mysql
            bindir=/mysql/install/mysql/bin
            if test -z "$datadir"
            then
              datadir=/mysql/install/data
            fi
            sbindir=/mysql/install/mysql/bin
            libexecdir=/mysql/install/mysql/bin
          else
            bindir="$basedir/bin"
            if test -z "$datadir"
            then
              datadir="$basedir/data"
            fi
            sbindir="$basedir/sbin"
            libexecdir="$basedir/libexec"
          fi
          
          # datadir_set is used to determine if datadir was set (and so should be
          # *not* set inside of the --basedir= handler.)
          datadir_set=
          
          #
          # Use LSB init script functions for printing messages, if possible
          #
          lsb_functions="/lib/lsb/init-functions"
          if test -f $lsb_functions ; then
            . $lsb_functions
          else
            log_success_msg()
            {
              echo " SUCCESS! $@"
            }
            log_failure_msg()
            {
              echo " ERROR! $@"
            }
          fi
          
          PATH="/sbin:/usr/sbin:/bin:/usr/bin:$basedir/bin"
          export PATH
          
          mode=$1    # start or stop
          
          [ $# -ge 1 ] && shift
          
          
          other_args="$*"   # uncommon, but needed when called from an RPM upgrade action
                     # Expected: "--skip-networking --skip-grant-tables"
                     # They are not checked here, intentionally, as it is the resposibility
                     # of the "spec" file author to give correct arguments only.
          
          case `echo "testing\c"`,`echo -n testing` in
              *c*,-n*) echo_n=   echo_c=     ;;
              *c*,*)   echo_n=-n echo_c=     ;;
              *)       echo_n=   echo_c='\c' ;;
          esac
          
          parse_server_arguments() {
            for arg do
              case "$arg" in
                --basedir=*)  basedir=`echo "$arg" | sed -e 's/^[^=]*=//'`
                              bindir="$basedir/bin"
          		    if test -z "$datadir_set"; then
          		      datadir="$basedir/data"
          		    fi
          		    sbindir="$basedir/sbin"
          		    libexecdir="$basedir/libexec"
                  ;;
                --datadir=*)  datadir=`echo "$arg" | sed -e 's/^[^=]*=//'`
          		    datadir_set=1
          	;;
                --pid-file=*) mysqld_pid_file_path=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
                --service-startup-timeout=*) service_startup_timeout=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
              esac
            done
          }
          
          wait_for_pid () {
            verb="$1"           # created | removed
            pid="$2"            # process ID of the program operating on the pid-file
            pid_file_path="$3" # path to the PID file.
          
            i=0
            avoid_race_condition="by checking again"
          
            while test $i -ne $service_startup_timeout ; do
          
              case "$verb" in
                'created')
                  # wait for a PID-file to pop into existence.
                  test -s "$pid_file_path" && i='' && break
                  ;;
                'removed')
                  # wait for this PID-file to disappear
                  test ! -s "$pid_file_path" && i='' && break
                  ;;
                *)
                  echo "wait_for_pid () usage: wait_for_pid created|removed pid pid_file_path"
                  exit 1
                  ;;
              esac
          
              # if server isn't running, then pid-file will never be updated
              if test -n "$pid"; then
                if kill -0 "$pid" 2>/dev/null; then
                  :  # the server still runs
                else
                  # The server may have exited between the last pid-file check and now.  
                  if test -n "$avoid_race_condition"; then
                    avoid_race_condition=""
                    continue  # Check again.
                  fi
          
                  # there's nothing that will affect the file.
                  log_failure_msg "The server quit without updating PID file ($pid_file_path)."
                  return 1  # not waiting any more.
                fi
              fi
          
              echo $echo_n ".$echo_c"
              i=`expr $i + 1`
              sleep 1
          
            done
          
            if test -z "$i" ; then
              log_success_msg
              return 0
            else
              log_failure_msg
              return 1
            fi
          }
          
          # Get arguments from the my.cnf file,
          # the only group, which is read from now on is [mysqld]
          if test -x "$bindir/my_print_defaults";  then
            print_defaults="$bindir/my_print_defaults"
          else
            # Try to find basedir in /etc/my.cnf
            conf=/mysql/install/my.cnf
            print_defaults=
            if test -r $conf
            then
              subpat='^[^=]*basedir[^=]*=\(.*\)$'
              dirs=`sed -e "/$subpat/!d" -e 's//\1/' $conf`
              for d in $dirs
              do
                d=`echo $d | sed -e 's/[ 	]//g'`
                if test -x "$d/bin/my_print_defaults"
                then
                  print_defaults="$d/bin/my_print_defaults"
                  break
                fi
              done
            fi
          
            # Hope it's in the PATH ... but I doubt it
            test -z "$print_defaults" && print_defaults="my_print_defaults"
          fi
          
          #
          # Read defaults file from 'basedir'.   If there is no defaults file there
          # check if it's in the old (depricated) place (datadir) and read it from there
          #
          
          extra_args=""
          if test -r "/mysql/install/my.cnf"
          then
            extra_args="-e /mysql/install/my.cnf"
          fi
          
          parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server`
          
          #
          # Set pid file if not given
          #
          if test -z "$mysqld_pid_file_path"
          then
            mysqld_pid_file_path=$datadir/`hostname`.pid
          else
            case "$mysqld_pid_file_path" in
              /* ) ;;
              * )  mysqld_pid_file_path="$datadir/$mysqld_pid_file_path" ;;
            esac
          fi
          
          case "$mode" in
            'start')
              # Start daemon
          
              # Safeguard (relative paths, core dumps..)
              cd $basedir
          
              echo $echo_n "Starting MySQL"
              if test -x $bindir/mysqld_safe
              then
                # Give extra arguments to mysqld with the my.cnf file. This script
                # may be overwritten at next upgrade.
                $bindir/mysqld_safe --defaults-file=/mysql/install/my.cnf --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null &
                wait_for_pid created "$!" "$mysqld_pid_file_path"; return_value=$?
          
                # Make lock for RedHat / SuSE
                if test -w "$lockdir"
                then
                  touch "$lock_file_path"
                fi
          
                exit $return_value
              else
                log_failure_msg "Couldn't find MySQL server ($bindir/mysqld_safe)"
              fi
              ;;
          
            'stop')
              # Stop daemon. We use a signal here to avoid having to know the
              # root password.
          
              if test -s "$mysqld_pid_file_path"
              then
                # signal mysqld_safe that it needs to stop
                touch "$mysqld_pid_file_path.shutdown"
          
                mysqld_pid=`cat "$mysqld_pid_file_path"`
          
                if (kill -0 $mysqld_pid 2>/dev/null)
                then
                  echo $echo_n "Shutting down MySQL"
                  kill $mysqld_pid
                  # mysqld should remove the pid file when it exits, so wait for it.
                  wait_for_pid removed "$mysqld_pid" "$mysqld_pid_file_path"; return_value=$?
                else
                  log_failure_msg "MySQL server process #$mysqld_pid is not running!"
                  rm "$mysqld_pid_file_path"
                fi
          
                # Delete lock for RedHat / SuSE
                if test -f "$lock_file_path"
                then
                  rm -f "$lock_file_path"
                fi
                exit $return_value
              else
                log_failure_msg "MySQL server PID file could not be found!"
              fi
              ;;
          
            'restart')
              # Stop the service and regardless of whether it was
              # running or not, start it again.
              if $0 stop  $other_args; then
                $0 start $other_args
              else
                log_failure_msg "Failed to stop running server, so refusing to try to start."
                exit 1
              fi
              ;;
          
            'reload'|'force-reload')
              if test -s "$mysqld_pid_file_path" ; then
                read mysqld_pid <  "$mysqld_pid_file_path"
                kill -HUP $mysqld_pid && log_success_msg "Reloading service MySQL"
                touch "$mysqld_pid_file_path"
              else
                log_failure_msg "MySQL PID file could not be found!"
                exit 1
              fi
              ;;
            'status')
              # First, check to see if pid file exists
              if test -s "$mysqld_pid_file_path" ; then 
                read mysqld_pid < "$mysqld_pid_file_path"
                if kill -0 $mysqld_pid 2>/dev/null ; then 
                  log_success_msg "MySQL running ($mysqld_pid)"
                  exit 0
                else
                  log_failure_msg "MySQL is not running, but PID file exists"
                  exit 1
                fi
              else
                # Try to find appropriate mysqld process
                mysqld_pid=`pidof $libexecdir/mysqld`
          
                # test if multiple pids exist
                pid_count=`echo $mysqld_pid | wc -w`
                if test $pid_count -gt 1 ; then
                  log_failure_msg "Multiple MySQL running but PID file could not be found ($mysqld_pid)"
                  exit 5
                elif test -z $mysqld_pid ; then 
                  if test -f "$lock_file_path" ; then 
                    log_failure_msg "MySQL is not running, but lock file ($lock_file_path) exists"
                    exit 2
                  fi 
                  log_failure_msg "MySQL is not running"
                  exit 3
                else
                  log_failure_msg "MySQL is running but PID file could not be found"
                  exit 4
                fi
              fi
              ;;
              *)
                # usage
                basename=`basename "$0"`
                echo "Usage: $basename  {start|stop|restart|reload|force-reload|status}  [ MySQL server options ]"
                exit 1
              ;;
          esac
          
          exit 0
          
          [root@localhost support-files]# pwd
          /mysql/install/mysql/support-files
          
          [root@localhost support-files]# chown mysql.mysql mysql
          
          [root@localhost support-files]# chmod 755 mysql
          
          [root@localhost support-files]# ll
          total 32K
          -rwxr-xr-x 1 mysql mysql  11K Oct  8 19:44 mysql
          -rwxr-xr-x 1 mysql mysql 1.1K Apr 10 14:26 mysqld_multi.server
          -rw-r--r-- 1 mysql mysql 2.1K Apr 10 15:58 mysql-log-rotate
          -rwxr-xr-x 1 mysql mysql  11K Apr 10 15:58 mysql.server
          [root@localhost support-files]# ./mysql status
           SUCCESS! MySQL running (3305)
          
          [root@localhost support-files]# ./mysql stop
          Shutting down MySQL.....2024-10-08T11:50:53.760574Z mysqld_safe mysqld from pid file /mysql/install/mysql.pid ended
           SUCCESS!
          [1]+  Done                    /mysql/install/mysql/bin/mysqld_safe --defaults-file=/mysql/install/my.cnf --datadir=/mysql/install/data --pid-file=/mysql/install/mysql.pid  (wd: /mysql/install)
          (wd now: /mysql/install/mysql/support-files)
          
          [root@localhost support-files]# ./mysql start
          Starting MySQL.............. SUCCESS!
          
          [root@localhost support-files]# ./mysql status
           SUCCESS! MySQL running (4653)
          

          使用systemd启动服务器(可选)

          [root@localhost support-files]# ./mysql stop
          Shutting down MySQL.. SUCCESS!
          
          [root@localhost support-files]#  cd /usr/lib/systemd/system
          
          [root@localhost system]# touch mysqld.service
          
          [root@localhost system]# chmod 644 mysqld.service
          
          [root@localhost system]# vi mysqld.service
          [root@localhost system]# cat mysqld.service
          [Unit]
          Description=MySQL Server
          Documentation=man:mysqld(8)
          Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
          After=network.target
          After=syslog.target
          
          [Install]
          WantedBy=multi-user.target
          
          [Service]
          User=mysql
          Group=mysql
          
          # Have mysqld write its state to the systemd notify socket
          Type=notify
          
          # Disable service start and stop timeout logic of systemd for mysqld service.
          TimeoutSec=0
          
          # Start main service
          ExecStart=/mysql/install/mysql/bin/mysqld --defaults-file=/mysql/install/my.cnf $MYSQLD_OPTS
          
          # Use this to switch malloc implementation
          EnvironmentFile=-/etc/sysconfig/mysql
          
          # Sets open_files_limit
          LimitNOFILE = 10000
          
          Restart=on-failure
          
          RestartPreventExitStatus=1
          
          # Set environment variable MYSQLD_PARENT_PID. This is required for restart.
          Environment=MYSQLD_PARENT_PID=1
          
          PrivateTmp=false
          
          [root@localhost system]# systemctl enable mysqld.service
          Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service → /usr/lib/systemd/system/mysqld.service.
          
          [root@localhost system]# systemctl start mysqld.service
          
          [root@localhost system]# systemctl status mysqld
          ● mysqld.service - MySQL Server
             Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
             Active: active (running) since Tue 2024-10-08 19:53:18 CST; 1s ago
               Docs: man:mysqld(8)
                     http://dev.mysql.com/doc/refman/en/using-systemd.html
           Main PID: 4794 (mysqld)
             Status: "Server is operational"
              Tasks: 39
             Memory: 422.6M
             CGroup: /system.slice/mysqld.service
                     └─4794 /mysql/install/mysql/bin/mysqld --defaults-file=/mysql/install/my.cnf
          
          Oct 08 19:53:10 localhost systemd[1]: Starting MySQL Server...
          Oct 08 19:53:18 localhost systemd[1]: Started MySQL Server.
          
          [root@localhost system]# systemctl stop mysqld
          

          自此mysql服务器自建完成。

          mysql数据库基础使用介绍

          mysql常用命令

          查看mysql中有哪些数据库 : show databases;  #注意:以分号结尾,分号是英文的分号。
          mysql> show databases;
          +--------------------+
          | Database           |
          +--------------------+
          | information_schema |
          | mysql              |
          | performance_schema |
          +--------------------+
          3 rows in set (0.02 sec)
          
          mysql>
          
          选择使用某个数据库:
          mysql> use mysql;
          Reading table information for completion of table and column names
          You can turn off this feature to get a quicker startup with -A
          
          Database changed
          
          查看某个数据库下有哪些表:
          mysql> show tables;
          mysql> show tables;
          +------------------------------------------------------+
          | Tables_in_mysql                                      |
          +------------------------------------------------------+
          | columns_priv                                         |
          | component                                            |
          | db                                                   |
          | default_roles                                        |
          | engine_cost                                          |
          | func                                                 |
          | general_log                                          |
          | global_grants                                        |
          | gtid_executed                                        |
          | help_category                                        |
          | help_keyword                                         |
          | help_relation                                        |
          | help_topic                                           |
          | innodb_index_stats                                   |
          | innodb_table_stats                                   |
          | ndb_binlog_index                                     |
          | password_history                                     |
          | plugin                                               |
          | procs_priv                                           |
          | proxies_priv                                         |
          | replication_asynchronous_connection_failover         |
          | replication_asynchronous_connection_failover_managed |
          | replication_group_configuration_version              |
          | replication_group_member_actions                     |
          | role_edges                                           |
          | server_cost                                          |
          | servers                                              |
          | slave_master_info                                    |
          | slave_relay_log_info                                 |
          | slave_worker_info                                    |
          | slow_log                                             |
          | tables_priv                                          |
          | time_zone                                            |
          | time_zone_leap_second                                |
          | time_zone_name                                       |
          | time_zone_transition                                 |
          | time_zone_transition_type                            |
          | user                                                 |
          +------------------------------------------------------+
          
          创建数据库:
          
          mysql> create database example;
          Query OK, 1 row affected (0.01 sec)
          
          mysql> show databases;
          +--------------------+
          | Database           |
          +--------------------+
          | example            |
          | information_schema |
          | mysql              |
          | performance_schema |
          +--------------------+
          4 rows in set (0.00 sec)
          
          查看mysql数据库的版本号:
          mysql> select version();
          +-----------+
          | version() |
          +-----------+
          | 8.4.0     |
          +-----------+
          1 row in set (0.00 sec)
          
          查看当前使用的是哪个数据库:
          mysql> select database();
          +------------+
          | database() |
          +------------+
          | mysql      |
          +------------+
          1 row in set (0.01 sec)
          
          导入数据库表:
          mysql> source D:\course\03-MySQL\document\test.sql  #注意:路径中不要有中文!!!!
          
          查看表的结构:
          mysql> desc <table_name>; #describe缩写为:desc
          

          简单查询select

          mysql> select * from db;
          +-----------+--------------------+---------------+-------------+-------------+-------------+-------------+-------------+-----------+------------+-----------------+------------+------------+-----------------------+------------------+------------------+----------------+---------------------+--------------------+--------------+------------+--------------+
          | Host      | Db                 | User          | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Create_tmp_table_priv | Lock_tables_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Execute_priv | Event_priv | Trigger_priv |
          +-----------+--------------------+---------------+-------------+-------------+-------------+-------------+-------------+-----------+------------+-----------------+------------+------------+-----------------------+------------------+------------------+----------------+---------------------+--------------------+--------------+------------+--------------+
          | localhost | performance_schema | mysql.session | Y           | N           | N           | N           | N           | N         | N          | N               | N          | N          | N                     | N  | N                | N              | N                   | N                  | N            | N          | N            |
          +-----------+--------------------+---------------+-------------+-------------+-------------+-------------+-------------+-----------+------------+-----------------+------------+------------+-----------------------+------------------+------------------+----------------+---------------------+--------------------+--------------+------------+--------------+
          1 row in set (0.00 sec)
          
          #这种方式的缺点:
          1、效率低(他会先把*号转换为字段)
          2、可读性差。
          
          给查询的列起别名:使用as关键字起别名
          mysql> select host,user as username from db; #as也可以省略
          +-----------+---------------+
          | host      | username      |
          +-----------+---------------+
          | localhost | mysql.session |
          +-----------+---------------+
          1 row in set (0.00 sec)
          
          

          条件查询

          查询语法格式:
              select
                字段1,字段2,字段3....
              from 
                表名
              where
                条件;
          mysql> select host,user from user;
          +-----------+------------------+
          | host      | user             |
          +-----------+------------------+
          | %         | root             |
          | localhost | mysql.infoschema |
          | localhost | mysql.session    |
          | localhost | root             |
          +-----------+------------------+
          4 rows in set (0.00 sec)
          
          mysql> select host,user username  from user where user='mysql.session'; 
          +-----------+---------------+
          | host      | username      |
          +-----------+---------------+
          | localhost | mysql.session |
          +-----------+---------------+
          1 row in set (0.00 sec
          

          表的创建

          创建一个学生表  
          create table t_student(
                no int,
                name varchar(32),
                sex char(1),
                age int(3),
                email varchar(255)
              );
          

          表的删除

            删除表:
            drop table t_student; // 当这张表不存在的时候会报错!
            // 如果这张表存在的话,删除
            drop table if exists t_student;
          

          插入数据insert

          插入数据insert (DML)
          
          语法格式:
            insert into 表名(字段名1,字段名2,字段名3...) values(值1,值2,值3);
          
          mysql>  create table t_user(number bigint(32),username varchar(32),sex char(1) default '男');
          mysql> desc t_user;
          +----------+-------------+------+-----+---------+-------+
          | Field    | Type        | Null | Key | Default | Extra |
          +----------+-------------+------+-----+---------+-------+
          | number   | bigint      | YES  |     | NULL    |       |
          | username | varchar(32) | YES  |     | NULL    |       |
          | sex      | char(1)     | YES  |     | 男      |       |
          +----------+-------------+------+-----+---------+-------+
          
          mysql> insert into t_user (number,username,sex) values (1,'user1','男'), (2,'user2','女'), (3,'user3','男');
          Query OK, 3 rows affected (0.00 sec)
          Records: 3  Duplicates: 0  Warnings: 0
          mysql> select * from t_user;
          +--------+----------+------+
          | number | username | sex  |
          +--------+----------+------+
          |      1 | user1    | 男   |
          |      2 | user2    | 女   |
          |      3 | user3    | 男   |
          +--------+----------+------+
          3 rows in set (0.00 sec)
          

          修改update

          语法格式:
          update 表名 set 字段名1=值1,字段名2=值2,字段名3=值3... where 条件;
          
          注意:没有条件限制会导致所有数据全部更新。
          
          update t_user set name = 'jack', birth = '2000-10-11' where id = 2;
          +------+----------+------------+---------------------+
          | id   | name     | birth      | create_time         |
          +------+----------+------------+---------------------+
          |    1 | zhangsan | 1990-10-01 | 2020-03-18 15:49:50 |
          |    2 | jack     | 2000-10-11 | 2020-03-18 15:51:23 |
          +------+----------+------------+---------------------+
          
          update t_user set name = 'jack', birth = '2000-10-11', create_time = now() where id = 2;
          
          更新所有?
            update t_user set name = 'abc';
          

          删除数据deleted

          语法格式?
            delete from 表名 where 条件;
          
          注意:没有条件,整张表的数据会全部删除!
          
          delete from t_user where id = 2;
          
          insert into t_user(id) values(2);
          
          delete from t_user; // 删除所有!
          
          快速删除表中的数据?【truncate比较重要,必须掌握】
          
          //删除dept_bak表中的数据
          delete from dept_bak; //这种删除数据的方式比较慢。
          
          mysql> select * from dept_bak;
          Empty set (0.00 sec)
          
          delete语句删除数据的原理?(delete属于DML语句!!!)
            表中的数据被删除了,但是这个数据在硬盘上的真实存储空间不会被释放!!!
            这种删除缺点是:删除效率比较低。
            这种删除优点是:支持回滚,后悔了可以再恢复数据!!!
          
          truncate语句删除数据的原理?
            这种删除效率比较高,表被一次截断,物理删除。
            这种删除缺点:不支持回滚。
            这种删除优点:快速。
          
          用法:truncate table dept_bak; (这种操作属于DDL操作。)
          
          大表非常大,上亿条记录????
            删除的时候,使用delete,也许需要执行1个小时才能删除完!效率较低。
            可以选择使用truncate删除表中的数据。只需要不到1秒钟的时间就删除结束。效率较高。
            但是使用truncate之前,必须仔细询问客户是否真的要删除,并警告删除之后不可恢复!
          
            truncate是删除表中的数据,表还在!
          
          删除表操作?
            drop table 表名; // 这不是删除表中的数据,这是把表删除。
          

          mysql常见问题及解决思路

          案例一:Too many connections(连接数过多,导致连接不上数据库,业务无法正常进行)
          问题复现:
          mysql> SHOW VARIABLES LIKE 'max_connections'; #将当前数据库允许最大连接数设置为1
          +-----------------+-------+
          | Variable_name   | Value |
          +-----------------+-------+
          | max_connections | 800   |
          +-----------------+-------+
          1 row in set (0.03 sec)
          
          mysql>  set global max_connections=1;
          Query OK, 0 rows affected (0.00 sec)
          
          mysql> SHOW VARIABLES LIKE 'max_connections';
          +-----------------+-------+
          | Variable_name   | Value |
          +-----------------+-------+
          | max_connections | 1     |
          +-----------------+-------+
          1 row in set (0.00 sec)
          
          [root@mysql ~]# mysql -uroot -predhat
          mysql: [Warning] Using a password on the command line interface can be insecure. 
          ERROR 1040 (HY000): Too many connections #报错,太多连接
          
          解决思路:
          首先先要考虑在我们 MySQL 数据库参数文件里面,对应的 max_connections 这个参数值是不是设置的太小了,导致客户端连接数超过了数据库所承受的最大值。
          该值默认大小是 151,我们可以根据实际情况进行调整
          对应解决办法:set global max_connections=500
          
          但这样调整会有隐患,因为我们无法确认数据库是否可以承担这么大的连接压力,就好比原来一个人只能吃一个馒头,但现在却非要让他吃 10 个,他肯定接受不了。反应到服务器上面,就有可能会出现宕机的可能。
          
          所以这又反映出了,我们在新上线一个业务系统的时候,要做好压力测试。保证后期对数据库进行优化调整
          其次可以限制 InnoDB的并发处理数量,如果 innodb_thread_concurrency = 0(这种代表不受限制) 可以先改成 16 或是 64 看服务器压力。
          如果非常大,可以先改的小一点让服务器的压力下来之后,然后再慢慢增大,根据自己的业务而定
          
          案例二 主从复制报错类型
          Last_SQL_Errno: 1062 (从库与主库数据冲突)
          Last_Errno: 1062
          
          Last_Error: Could not execute Write_rows event on table test.t;
          
          Duplicate entry ‘4’ for key ‘PRIMARY’,
          
          Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY;
          
          the event’s master log mysql-bin.000014, end_log_pos 1505
          
          针对这个报错,我们首先要考虑是不是在从库中误操作导致的。结果发现,我们在从库中进行了一条针对有主键表的SQL语句的插入,导致主库再插入相同 sql 的时候,主从状态出现异常。发生主键冲突的报错。
          解决方法:在确保主从数据一致性的前提下,可以在从库进行错误跳过。一般使用 percona-toolkit 中的 pt-slave-restart 进行。
          在从库完成如下操作:
          [root@zs bin]# ./pt-slave-restart -uroot -proot123
          之后最好在从库中开启 read_only 参数,禁止在从库进行写入操作。
          
          Last_IO_Errno: 1593(server-id冲突)
          Last_IO_Error:
          
          Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids;
          
          these ids must be different for replication to work
          
          (or the –replicate-same-server-id option must be used on slave but this
          
          does not always make sense; please check the manual before using it)
          
          这个报错出现之后,就能一目了然看到两台机器的 server-id 是一样的。
          
          在搭建主从复制的过程中,我们要确保两台机器的 server-id 是唯一的。这里再强调一下 server-id 的命名规则(服务器 ip 地址的最后一位+本 MySQL 服务的端口号)。
          
          解决方法:在主从两台机器上设置不同的 server-id。
          
          Last_SQL_Errno: 1032(从库少数据,主库更新的时候,从库报错)
          Last_SQL_Error:
          
          Could not execute Update_rows event on table test.t; Can’t find record
          
          in ‘t’, Error_code: 1032; handler error HA_ERR_KEY_NOT_FOUND; the
          
          event’s master log mysql-bin.000014, end_log_pos 1708
          
          解决问题的办法:根据报错信息,我们可以获取到报错日志和position号,然后就能找到主库执行的哪条sql,导致的主从报错。
          
          在主库执行:
          
          /usr/local/mysql/bin/mysqlbinlog –no-defaults -v -v –-output=decode-rows /data/mysql/mysql-bin.000014 |grep -A 10 1708 > 1.log
          
          cat 1.log
          
          #170720 14:20:15 server id 3 end_log_pos 1708 CRC32 0x97b6bdec Update_rows: table id 113 flags: STMT_END_F
          
          ### UPDATE `test`.`t`
          
          ### WHERE
          
          ### @1=4 /* INT meta=0 nullable=0 is_null=0 */
          
          ### @2=’dd’ /* VARSTRING(60) meta=60 nullable=1 is_null=0 */
          
          ### SET
          
          ### @1=4 /* INT meta=0 nullable=0 is_null=0 */
          
          ### @2=’ddd’ /* VARSTRING(60) meta=60 nullable=1 is_null=0 */
          
          # at 1708
          
          #170720 14:20:15 server id 3 end_log_pos 1739 CRC32 0xecaf1922 Xid = 654
          
          COMMIT/*!*/;
          
          DELIMITER ;
          
          # End of log file
          
          ROLLBACK /* added by mysqlbinlog */;
          
          /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
          
          /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
          
          获取到SQL语句之后,就可以在从库反向执行SQL语句。把从库缺少的SQL语句补全,解决报错信息。
          
          在从库依次执行:
          
          mysql> insert into t (b) values (‘ddd’);
          
          Query OK, 1 row affected (0.01 sec)
          
          mysql> stop slave;
          
          Query OK, 0 rows affected (0.00 sec)
          
          mysql> exit
          
          Bye
          
          [root@node4 bin]# ./pt-slave-restart -uroot -proot123
          
          案例三 MySQL安装过程中的报错
          [root@zs data]# /usr/local/mysql/bin/mysqld_safe –defaults-file=/etc/my.cnf &[1] 3758
          
          [root@zs data]# 170720 14:41:24 mysqld_safe Logging to ‘/data/mysql/error.log’.
          
          170720 14:41:24 mysqld_safe Starting mysqld daemon with databases from /data/mysql170720
          
          14:41:25 mysqld_safe mysqld from pid file /data/mysql/node4.pid ended
          
          170720 14:41:24 mysqld_safe Starting mysqld daemon with databases from /data/mysql2017-07-20
          
          14:41:25 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated.
          
          Please use –explicit_defaults_for_timestamp server option
          
          (see documentation for more details)./usr/local/mysql/bin/mysqld:
          
          File ‘/data/mysql/mysql-bin.index’ not found (Errcode: 13 – Permission denied)
          
          2017-07-20 14:41:25 4388 [ERROR] Aborting
          
          解决思路:遇到这样的报错信息,我们要学会时时去关注错误日志 error log 里面的内容。看见了关键的报错点Permission denied,证明当前 MySQL 数据库的数据目录没有权限。
          
          解决方法:
          
          [root@zs data]# chown mysql:mysql -R mysql
          
          [root@zs data]# /usr/local/mysql/bin/mysqld_safe –defaults-file=/etc/my.cnf &
          
          [1] 4402
          
          [root@zs data]# 170720 14:45:56 mysqld_safe Logging to ‘/data/mysql/error.log’.
          
          170720 14:45:56 mysqld_safe Starting mysqld daemon with databases from /data/mysql
          
          如何避免这类问题,个人建议在安装 MySQL 初始化的时候,一定加上–user=mysql,这样就可以避免权限问题
          
          ./mysql_install_db –basedir=/usr/local/mysql/ –datadir=/data/mysql/ –defaults-file=/etc/my.cnf –user=mysql
          
          案例四 数据库密码忘记的问题
          [root@zs ~]# mysql -uroot -p
          
          Enter password:
          
          ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
          
          [root@zs ~]# mysql -uroot -p
          
          Enter password:
          
          ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
          
          解决思路:目前是进入不了数据库的情况,所以我们要考虑是不是可以跳过权限。因为在数据库中,MySQL 数据库中 user 表记录着我们用户的信息。
          
          解决方法:启动 MySQL 数据库的过程中,可以这样执行:
          
          /usr/local/mysql/bin/mysqld_safe –defaults-file=/etc/my.cnf –skip-grant-tables &
          
          这样启动,就可以不用输入密码,直接进入 MySQL 数据库了。然后在修改你自己想要改的 root 密码即可。
          update mysql.user set password=password(‘root123′) where user=’root’;
          
          案例五 truncate 删除数据,导致自动清空自增 ID,前端返回报错 not found
          这个问题的出现,就要考虑下 truncate 和 delete 的区别了,看下实验演练:
          
          首先先创建一张表:
          CREATE TABLE `t` (
          
          `a` int(11) NOT NULL AUTO_INCREMENT,
          
          `b` varchar(20) DEFAULT NULL,
          
          PRIMARY KEY (`a`),
          
          KEY `b` (`b`)
          
          ) ENGINE=InnoDB AUTO_INCREMENT=300 DEFAULT CHARSET=utf8
          
          插入三条数据:
          
          mysql> insert into t (b) values (‘aa’);
          
          Query OK, 1 row affected (0.00 sec)
          
          mysql> insert into t (b) values (‘bb’);
          
          Query OK, 1 row affected (0.00 sec)
          
          mysql> insert into t (b) values (‘cc’);
          
          Query OK, 1 row affected (0.00 sec)
          
          mysql> select * from t;
          
          +—–+——+
          
          | a | b |
          
          +—–+——+
          
          | 300 | aa |
          
          | 301 | bb |
          
          | 302 | cc |
          
          +—–+——+
          
          3 rows in set (0.00 sec)
          
          先用 delete 进行删除全表信息,再插入新值。
          
          结果发现 truncate 把自增初始值重置了,自增属性从 1 开始记录了。当前端用主键 id 进行查询时,就会报没有这条数据的错误。
          
          个人建议不要使用 truncate 对表进行删除操作,虽然可以回收表空间,但是会涉及自增属性问题。这些坑,我们不要轻易钻进去。
          
          案例六 can’t open file (errno:24)
          
          有的时候,数据库跑得好好的,突然报不能打开数据库文件的错误了。
          解决思路:首先我们要先查看数据库的 error log。然后判断是表损坏,还是权限问题。还有可能磁盘空间不足导致的不能正常访问表;操作系统的限制也要关注下;用 perror 工具查看具体错误!
          
          linux:/usr/local/mysql/bin # ./perror 24
          
          OS error code 24: Too many open files
          
          超出最大打开文件数限制!ulimit -n 查看系统的最大打开文件数是 65535,不可能超出!那必然是数据库的最大打开文件数超出限制!
          
          在 MySQL 里查看最大打开文件数限制命令:show variables like ‘open_files_limit’;
          
          发现该数值过小,改为 2048,重启 MySQL,应用正常
          
          处理方法:
          
          repair table ;
          
          chown mysql 权限
          
          清理磁盘中的垃圾数据
          
          文档反馈

          建议您登录后反馈,可在建议与反馈里查看问题处理进度

          鼠标选中文档,精准反馈问题

          选中存在疑惑的内容,即可快速反馈问题,我们会跟进处理

          知道了

          上一篇 :  基于Tomcat构建Java web环境(CentOS 7.4)
          下一篇 :  典型网站类场景
          搜索 关闭
          ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
          公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
          备案 京公网安备11010802043424号 京ICP备 2021034386号
          ©2025天翼云科技有限公司版权所有
          京ICP备 2021034386号
          备案 京公网安备11010802043424号
          增值电信业务经营许可证A2.B1.B2-20090001
          用户协议 隐私政策 法律声明