MySQL 服务器配置与管理

MySQL 服务器配置与管理

MySQL 服务器简介

MySQL 服务器指的是mysqld程序,当运⾏mysqld后对外提供MySQL 服务

服务器配置和默认值

mysqld 有很多选项和系统变量可以在启动时进⾏配置

查看所有mysqld 选项和可配置的系统变量列表及默认值 mysqld --verbose --help

查看服务器在运⾏时系统变量的值,连接到MySQL并执⾏以下语句

SHOW VARIABLES;

查看服务器在运⾏时的⼀些统计和状态指⽰器

 SHOW STATUS;

注意:系统变量、状态变量的作⽤域分为: Global (全局), Session (当前会话或连接), 或 两者都⽀持

系统变量和选项

当通过mysqld启动数据库服务器时,可以通过选项⽂件或命令⾏中提供选项,但是,在⼤多数情况下,为确保服务器每次运⾏时都使⽤相同的选项,最好的⽅法是在选项⽂件中指定相应的选项。

mysqld从选项⽂件中的 [mysqld] 和 [server] 组(节点)中读取选项内容

常用选项

使⽤系统变量

设置系统变量的语法与命令选项的语法相同,指定变量名称时,破折号和下划线可以互换使⽤。例如, --general_log=ON 和 --general-log=ON 是等价的。

⽰例:为服务器指定 256 KB 的排序缓冲区⼤⼩和 1 GB 的最⼤数据包⼤⼩

# 在命令⾏的指定 mysqld --sort-buffer-size=256K --max-allowed-packet=1G # 在选项⽂件中指定 [mysqld] sort_buffer_size=256k max_allowed_packet=1g

⼤部分系统变量是动态的,在服务器运⾏时可以通过 SET 语句动态更改,并且⽆需停⽌和重新启动服务器。在服务器运⾏时,使⽤ SET 语句设置系统变量,需要指定作⽤域(也可以在前⾯加上@@ 修饰符),然后指定系统变量的名称,名称必须使⽤下划线⽽不是破折号,如下所⽰

mysql> SET GLOBAL max_connections = 1000; mysql> SET @@GLOBAL.max_connections = 1000;

将全局系统变量持久化到 mysqld-auto.cnf ⽂件(同时设置运⾏时值):

mysql> SET PERSIST max_connections = 1000; mysql> SET @@PERSIST.max_connections = 1000;

将全局系统变量持久化到 mysqld-auto.cnf ⽂件(不设置运⾏时值):

# PERSIST 表⽰持久化的同时设置全局变量的值 mysql> SET PERSIST_ONLY max_connections = 1000; mysql> SET @@PERSIST_ONLY.max_connections = 1000;

删除持久化的系统变量可以使⽤语句

RESET PERSIST IF EXISTS system_var_name;

服务器常⽤配置

Linux系统下编辑 /etc/mysql/my.cnf

Windows系统下打开C:/ProgramData/MySQL/MySQL Server 8.0/my.ini

注意:
编辑前先备份原始⽂件
• 如果要修改数据⽬录选项建议先停⽌MySQL服务,并把原data⽬录整体复制到新路径,配置完
成后重启服务

在 [mysqld] 节点下添加以下内容

# MySQL 服务节点 [mysqld] # MySQL 服务启动后监听的端⼝号 port=3306 # 数据⽬录的路径,这⾥演⽰的是windows下的配置,注意分隔符⽤/,如果是\则需要转义为\\. # 把原data⽬录整体复制到新路径 datadir=D:/database/MySQL/data8.0 # MySQL 服务器的字符集与排序规则 character-set-server=utf8mb4 collation-server=utf8mb4_general_ci # 新建表时使⽤的存储引擎,windows下已默认配置 default-storage-engine=INNODB

MySQL数据⽬录

⽇志简介

错误日志,一般查询日志,慢查询日志,二进制日志,中继日志,DDL日志,回滚日志,重做日志

  • 默认情况下,除 Windows 上的错误⽇志外,不启⽤任何⽇志,Linux下默认开启错误⽇志和⼆进制⽇志
  • 在服务器运⾏期间可以控制⼀般查询和慢查询⽇志的禁⽤与开启,也可以更改⽇志⽂件名
  • ⼀般查询⽇志和慢查询⽇志记录可以写⼊⽇志表、⽇志⽂件或两者同时写⼊

默认情况下,所有启⽤的⽇志将写⼊数据⽬录,可以通过刷新⽇志强制服务器关闭并重新打开⽇志⽂件(通过 FLUSH LOGS 语句刷新⽇志来强制服务器关闭并重新打开⽇志⽂件).

⼀般查询⽇志和慢查询⽇志的输出形式

如果启⽤⼀般查询⽇志和慢查询⽇志,⽇志的输出⽅式可以指定为⽇志⽂件或 mysql 系统库中的 general_log 和 slow_log 表,也可以两者同时指定。启动时的日志控制

[mysqld] #⽇志⽂件 log_output=FILE #开启⼀般查询⽇志 general_log=1 #指定⾃定义的⽂件名 general_log_file=/var/lib/mysql/general.log #开启慢查询⽇志 slow_query_log=1 #指定⾃定义的⽂件名 slow_query_log_file=/var/lib/mysql/slow_query.log

使用日志的优点

• 可以通过 SQL 语句的条件查询过滤⽇志内容,从⽽选择满⾜特定条件的⽇志记录。
• 可以通过客⼾端程序连接到服务器并查询表中的⽇志信息,⽆需登录服务器主机访问⽂件系统。
• ⽇志记录具有标准格式,可看⽇志表的结构,可以使⽤以下语句:

SHOW CREATE TABLE mysql.general_log; # ⼀般查询⽇志 SHOW CREATE TABLE mysql.slow_log; # 慢查询⽇志

⼀般查询⽇志

 SHOW CREATE TABLE mysql.general_log;

实例

慢查询日志

慢查询日志的产生条件:

1.执行时间超过阈值

2.检查的行数大于阈值(查询语句返回的结果集包含的行数)

一般来说执行时间包括:执行sql并返回结果的时间+释放锁的时间.

日志内容

日志文件的内容格式

日志表的表结构

错误日志

错误⽇志⼀般会记录mysqld 启动和关闭的次数,诊断消息以及服务器运⾏期间发⽣的错误;

配置错误⽇志

错误⽇志输出的位置,可以是控制台或指定⽂件,"控制台"表⽰ stderr 标准错误输出。

错误日志的核心字段

示例

• 如果使⽤ FLUSH ERROR LOGS  命令刷新错误⽇志,服务器会将正在写⼊的任何错误⽇志⽂件关闭并重新打开。
• 如果要⼿动重命名错误⽇志⽂件,可以在重命名操作之后执⾏刷新操作,服务器会以原⽂件名⽣成⼀个新的错误⽇志⽂件,例如⽇志⽂件名为 host_name.err ,可以按以下步骤操作:

⼆进制⽇志

作用

查看二进制日志

二进制日志格式

Redo Log 和 Undo Log

在⼀台机器上运⾏多个MySQL实例

Read more

从AI工具使用者到创作者:我是如何开启技术变现之路的

从AI工具使用者到创作者:我是如何开启技术变现之路的

前言:这是一篇关于AI时代创作者成长的思考与分享,也是我参与"AI创作者AMA"活动的缘起故事。 一、AI时代的创作者困境 2025年,我发现自己陷入了一个奇怪的循环: 每天刷到各种AI工具的新闻——ChatGPT更新了、Midjourney出图更逼真了、Sora能生成视频了。我像收集游戏成就一样,注册了十几个AI账号,收藏了几百个提示词。 但半年过去了,我依然是AI工具的"收藏家",而不是AI时代的创作者。 问题出在哪里? * 缺乏实战场景:知道工具强大,但不知道用在什么场景 * 缺乏反馈机制:自己闷头摸索,不知道作品质量如何 * 缺乏变现路径:花了大量时间学习,却不知道如何转化为价值 * 缺乏同行交流:一个人摸索,效率极低 我相信很多开发者、设计师、内容创作者都有类似的困惑。 二、转机:一次意外的AMA活动 改变发生在上周。我在脉脉上刷到了一个活动——“AI创作者AMA第二期”。 AMA是"Ask Me

By Ne0inhk
OpenClaw 搭建全流程实战:从 0 部署到可控 AI Agent(附避坑与安全建议)

OpenClaw 搭建全流程实战:从 0 部署到可控 AI Agent(附避坑与安全建议)

近几个月,「AI Agent」成为技术圈的高频词,但大多数人停留在 Demo、插件和概念层。 真正能跑在本地 / 服务器、拥有真实权限、能持续执行任务的 Agent 并不多。 OpenClaw,正是目前少数几个工程完整、可部署、可二次开发的开源 AI Agent 框架之一。 这篇文章不讲愿景、不画饼,只讲怎么搭、怎么跑、怎么不翻车。 一、OpenClaw 到底是什么?先说清楚定位 一句话说明白: OpenClaw 是一个可部署在本地或服务器上的开源 AI Agent 框架,具备 Gateway(通信)、Dashboard(控制台)和 Skills(能力插件)三大核心模块。 和 ChatGPT / 插件的本质区别在于: 对比项普通 AI 工具OpenClaw运行位置云端本地

By Ne0inhk
人工智能 Gemini 2.5 Pro:深度解析技术突破与实战应用

人工智能 Gemini 2.5 Pro:深度解析技术突破与实战应用

🎬 个人主页:艾莉丝努力练剑 ❄专栏传送门:《C语言》《数据结构与算法》《C/C++干货分享&学习过程记录》 《Linux操作系统编程详解》《笔试/面试常见算法:从基础到进阶》《Python干货分享》 ⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平 🎬 艾莉丝的简介: 文章目录 * 前言 * 一、技术架构的三大革命性突破 * 1.1 稀疏混合专家架构:容量与效率的完美平衡 * 1.2 动态推理预算:让AI学会"思考" * 1.3 超长上下文处理:百万Token带来的质变 * 二、多模态能力的实质性突破 * 2.1 视频理解到交互应用 * 2.2 图像到代码的精准转换 * 2.3 跨模态逻辑推理

By Ne0inhk
OpenClaw 为什么突然爆火?从上门安装到排队体验,我看到的 AI Agent 破圈真相

OpenClaw 为什么突然爆火?从上门安装到排队体验,我看到的 AI Agent 破圈真相

🔥 个人主页:杨利杰YJlio❄️ 个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》《Python》《Kali Linux》《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更简单,让重复的工作自动化 OpenClaw 为什么突然爆火?从上门安装到排队体验,我看到的 AI Agent 破圈真相 * 1、OpenClaw 这次为什么让我有点震撼? * 2、OpenClaw 到底是什么?它和普通聊天 AI 有什么不同? * 2.1 普通大模型解决的是“回答问题” * 2.2 OpenClaw 这类 Agent 试图解决的是“帮我完成任务” * 3、从控制台截图看,它已经不是“纯概念”了 * 4、

By Ne0inhk