1. 为什么选择在Ubuntu 22.04上部署MySQLMySQL作为最流行的开源关系型数据库之一在Web应用、企业系统和数据分析等领域有着广泛应用。Ubuntu 22.04 LTS作为长期支持版本提供了稳定的软件包和五年的安全更新是部署生产环境MySQL的理想选择。我在多个实际项目中采用这种组合主要基于以下考虑稳定性保障Ubuntu 22.04的APT仓库提供经过充分测试的MySQL版本默认为8.0避免了自行编译可能带来的兼容性问题安全基线系统默认配置符合安全最佳实践如默认启用SSL连接、密码强度策略等维护便利通过systemd管理服务支持自动崩溃恢复和日志轮转性能优化针对现代硬件做了默认调优如InnoDB缓冲池大小自动配置提示虽然Ubuntu仓库中的MySQL版本可能不是最新小版本但对于大多数生产场景已经足够。如需特定版本可以考虑官方APT仓库或Docker部署方案。2. 系统准备与MySQL安装2.1 环境预检在开始安装前建议先检查系统资源情况# 检查内存建议不少于2GB free -h # 检查磁盘空间建议系统分区不少于10GB df -h # 检查已有MySQL进程 ps aux | grep mysql如果发现已有MySQL实例运行需要先进行清理# 停止现有服务 sudo systemctl stop mysql # 完全卸载谨慎操作会删除所有数据 sudo apt purge mysql-server mysql-client mysql-common sudo rm -rf /var/lib/mysql /etc/mysql2.2 安装MySQL服务器更新软件源并安装MySQL服务sudo apt update sudo apt upgrade -y sudo apt install mysql-server -y安装完成后系统会自动创建mysql系统用户和用户组初始化数据目录/var/lib/mysql生成默认配置文件/etc/mysql/my.cnf设置systemd服务单元验证安装是否成功# 检查服务状态 systemctl status mysql # 查看版本信息 mysqld --version2.3 安全加固配置运行安全脚本进行基础加固sudo mysql_secure_installation该脚本会引导完成以下安全设置设置root密码强度策略建议选择2STRONG移除匿名用户必须选择Y禁止root远程登录生产环境建议Y移除测试数据库建议Y立即重载权限表必须Y典型交互过程示例Securing the MySQL server deployment. Enter password for user root: [输入临时密码或留空] VALIDATE PASSWORD COMPONENT can be used to test passwords... Would you like to setup VALIDATE PASSWORD? (Press y|Y for Yes, any other key for No) : Y There are three levels of password validation policy: LOW Length 8 MEDIUM Length 8, numeric, mixed case, and special characters STRONG Length 8, numeric, mixed case, special characters and dictionary file Please enter 0 LOW, 1 MEDIUM and 2 STRONG: 2 Please set the password for root here. New password: [输入符合STRONG策略的密码] Re-enter new password: [重复密码] Estimated strength of the password: 100 Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y3. MySQL基础配置与管理3.1 用户权限体系配置MySQL 8.0默认使用caching_sha2_password认证插件比旧版的mysql_native_password更安全但可能带来兼容性问题。查看当前认证方式SELECT user, host, plugin FROM mysql.user;创建应用专用用户示例创建开发者账号CREATE USER dev_user% IDENTIFIED WITH caching_sha2_password BY ComplexPassword123; GRANT ALL PRIVILEGES ON app_db.* TO dev_user%; FLUSH PRIVILEGES;注意如果客户端工具不支持caching_sha2_password可以改用mysql_native_passwordALTER USER dev_user% IDENTIFIED WITH mysql_native_password BY password;3.2 网络连接配置编辑MySQL主配置文件sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf关键参数调整建议[mysqld] # 绑定地址0.0.0.0表示允许所有IP访问 bind-address 0.0.0.0 # 最大连接数根据服务器内存调整 max_connections 200 # 查询缓存MySQL 8.0已移除无需配置 # query_cache_size 0 # 启用二进制日志主从复制需要 server-id 1 log_bin /var/log/mysql/mysql-bin.log expire_logs_days 14保存后重启服务生效sudo systemctl restart mysql3.3 防火墙配置如果使用UFW防火墙需要开放MySQL默认端口sudo ufw allow 3306/tcp sudo ufw enable sudo ufw status对于生产环境建议限制访问源IPsudo ufw allow from 192.168.1.0/24 to any port 33064. 高级配置与优化4.1 内存参数调优根据服务器内存调整InnoDB缓冲池大小通常为物理内存的50-70%-- 查看当前配置 SHOW VARIABLES LIKE innodb_buffer_pool_size; -- 动态调整8GB内存示例 SET GLOBAL innodb_buffer_pool_size 4294967296; -- 4GB永久生效需在配置文件中添加[mysqld] innodb_buffer_pool_size 4G4.2 存储引擎配置MySQL 8.0默认使用InnoDB建议显式配置[mysqld] default_storage_engine InnoDB innodb_file_per_table ON innodb_flush_log_at_trx_commit 1 sync_binlog 14.3 监控与维护设置慢查询日志[mysqld] slow_query_log 1 slow_query_log_file /var/log/mysql/mysql-slow.log long_query_time 2 log_queries_not_using_indexes 1定期维护建议# 每周优化所有表 mysqlcheck -u root -p --auto-repair --optimize --all-databases # 每日备份示例 mysqldump -u root -p --all-databases --single-transaction | gzip /backup/mysql_$(date %Y%m%d).sql.gz5. 常见问题排查5.1 连接问题排查错误ERROR 2002 (HY000): Cant connect to local MySQL server排查步骤检查服务状态sudo systemctl status mysql查看错误日志sudo tail -f /var/log/mysql/error.log检查端口监听sudo netstat -tulnp | grep 3306检查SELinux状态getenforce如果是Enforcing模式可能需要调整策略5.2 性能问题排查使用诊断工具-- 查看当前连接状态 SHOW PROCESSLIST; -- 查看锁等待 SELECT * FROM performance_schema.events_waits_current; -- 查看内存使用 SELECT * FROM sys.memory_global_by_current_bytes;5.3 密码重置方法如果忘记root密码停止MySQL服务sudo systemctl stop mysql启动无权限检查模式sudo mysqld_safe --skip-grant-tables 连接MySQLmysql -u root更新密码FLUSH PRIVILEGES; ALTER USER rootlocalhost IDENTIFIED BY NewPassword;退出并重启服务6. 可视化工具连接6.1 DBeaver连接配置新建MySQL连接主机服务器IP端口3306数据库留空显示所有库用户名/密码之前创建的用户凭据驱动属性添加useSSLfalse如未配置SSL6.2 phpMyAdmin安装对于Web管理界面sudo apt install phpmyadmin配置Apache集成sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf sudo a2enconf phpmyadmin sudo systemctl reload apache2访问地址http://服务器IP/phpmyadmin7. 生产环境建议定期备份策略完整备份每周一次全量备份增量备份每天binlog备份验证备份定期测试备份恢复流程监控方案Prometheus Grafana监控MySQL指标设置关键指标告警连接数、慢查询、复制延迟等高可用方案主从复制至少配置一个从库组复制MySQL Group Replication实现多主架构中间件使用ProxySQL实现读写分离安全加固启用SSL加密连接安装审计插件如audit_log定期轮换密码我在实际运维中发现合理的参数配置和监控体系可以预防80%的数据库问题。建议新部署的MySQL实例至少运行压力测试工具如sysbench验证基础性能并建立基线指标供日后比对。
企业数字化 ERP 产品动态
相关推荐
无人机集群协同路径规划:多段Dubins路径与威胁规避策略 1. 项目背景与核心挑战无人机集群在复杂威胁环境下的协同路径规划是当前智能无人系统领域的前沿课题。当多架无人机需要在包含雷达探测区、防空火力圈、地形障碍等多样化威胁的空间中执行协同任务时,传统的单机路径规划方法往往难以满足以下需求:时空协同… · 2026/11/5 2:42:02
Solon AI v3.9架构升级:分布式调度与多模态交互优化 1. Solon AI v3.9 版本升级解析上周五深夜,团队终于把Solon AI v3.9的最后一个测试用例跑通。这个被内部称为"技能大爆炸"的版本,可能是我们今年最具突破性的更新。相比v3.8,新版本在技能组合、上下文理解和多模态交互这三个维度实… · 2026/11/5 2:42:02
QNX串口程序实战:termios原始模式、环形缓冲与帧状态机 简介:这是一份面向QNX嵌入式开发初学者与串口通信学习者的源码实例包,围绕实时操作系统下的串口编程展开,可用于理解设备节点访问、参数配置与数据收发流程,适合需要快速搭建串口实验并对照源码排查配置问题的自学者。压缩包为rar… · 2026/11/5 2:42:02
放款前的隐藏负债信号:用fin-risk-models检测房贷放款前90天大额信用卡分期(完整指南) 【免费下载链接】fin-risk-models Open-source models for financial risk detection and fraud analytics 项目地址: https://gitcode.com/gh_mirrors/fi/fin-risk-models 点击查看 免费下载 fin-risk-models 是一个开源的金融风控模型仓库,专注于信贷… · 2026/11/5 3:29:15
免费 GPU 马赛克修复:Jasna 从安装到出片完整指南 免费 GPU 马赛克修复:Jasna 从安装到出片完整指南 【免费下载链接】jasna Video restoration tool 项目地址: https://gitcode.com/GitHub_Trending/ja/jasna
想让视频去马赛克又不想花钱,就让 Jasna 把检测、修复、编码整条流水线全部跑在 GPU 上… · 2026/11/5 3:28:15
NocoDB 部署完全指南:15 分钟跑起你的可视化数据库平台 NocoDB 部署完全指南:15 分钟跑起你的可视化数据库平台 【免费下载链接】nocodb 🔥 🔥 🔥 A Free & Self-hostable Airtable Alternative 项目地址: https://gitcode.com/GitHub_Trending/no/nocodb
NocoDB 是一个可自… · 2026/11/5 3:28:15
MaaAssistantArknights:明日方舟助手一次配置,日常一键托管躺平 MaaAssistantArknights:明日方舟助手一次配置,日常一键托管躺平 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项… · 2026/11/5 3:28:15
PR封面设计(四类) /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 3:28:15
Umi-OCR 免费离线 OCR 指南:截图、批量、PDF 识别一次搞定 Umi-OCR 免费离线 OCR 指南:截图、批量、PDF 识别一次搞定 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。内置多国… · 2026/11/5 3:28:15
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38
多智能体协作系统架构设计与实践优化 1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39
大模型系统性入门实战指南:从原理到部署微调的全链路路线 提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39
鸿蒙文件系统沙箱机制解析与开发实践 1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38