📌 温馨提示:
本文内容可能随时间变动而失效,请以页面显示的更新时间为准。
若内容已不准确或资源失效,欢迎留言或联系站长反馈修正。
⚠️ 免责声明:
本文仅供学习与参考,观点仅代表作者个人意见,与本站无关。
如有侵权问题,请立即联系我们处理,谢谢理解与支持。
本文内容可能随时间变动而失效,请以页面显示的更新时间为准。
若内容已不准确或资源失效,欢迎留言或联系站长反馈修正。
⚠️ 免责声明:
本文仅供学习与参考,观点仅代表作者个人意见,与本站无关。
如有侵权问题,请立即联系我们处理,谢谢理解与支持。
通过 yum
在 CentOS 7 中安装 MySQL(通常为 mysql-community-server
)后,系统会自动创建一系列目录和文件,用于存储数据库、日志、配置和执行文件等。
📂 一、YUM 安装后的 MySQL 目录结构总览
目录路径 | 用途说明 |
---|---|
/etc/my.cnf | MySQL 主配置文件 |
/etc/my.cnf.d/ | MySQL 的配置扩展目录,可放置其他 .cnf 文件 |
/var/lib/mysql/ | 默认的数据存储目录,保存所有数据库的数据文件 |
/var/log/mysqld.log | MySQL 错误日志文件,记录启动、运行过程中的错误 |
/usr/lib/systemd/system/mysqld.service | systemd 服务启动配置文件 |
/usr/bin/ | MySQL 命令工具(如 mysql , mysqldump , mysqladmin )所在目录 |
/usr/sbin/mysqld | MySQL 服务主进程 |
/var/run/mysqld/ 或 /run/mysqld/ | 运行时文件(如 socket 文件、PID 文件)目录 |
/tmp/ | 临时目录,某些临时文件、连接文件等会放在此处 |
/usr/share/mysql/ | 包含一些默认的字符集、错误信息、多语言支持等 |
/var/lib/mysql/mysql.sock | Socket 文件,用于本地连接数据库 |
/var/lib/mysql/mysql.pid | PID 文件,记录 mysqld 进程号 |
⚠️ 注意:实际路径可通过配置文件中修改,也可使用
mysqld --verbose --help
查看默认路径。
⚙️ 二、MySQL 主配置文件 /etc/my.cnf
字段详解
MySQL 的配置文件遵循 INI 格式,常见有多个段(Section),如 [mysqld]
、[client]
、[mysqld_safe]
等。
🔹 示例文件结构:
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
port=3306
socket=/var/lib/mysql/mysql.sock
datadir=/var/lib/mysql
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8mb4
default-storage-engine=InnoDB
max_connections=200
sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
🔸 字段释义说明(按段分类)
1. [client]
port=3306
客户端连接使用的端口号,默认是 3306。socket=/var/lib/mysql/mysql.sock
客户端连接使用的 UNIX socket 文件路径,用于本地连接数据库。
2. [mysqld]
port=3306
MySQL 服务监听的端口号。socket=/var/lib/mysql/mysql.sock
服务端监听的 socket 文件路径。datadir=/var/lib/mysql
数据库文件的根目录,所有库的数据、索引、日志等都会保存在这里。symbolic-links=0
禁止使用符号链接,提高安全性,防止数据库目录被软链到其他路径。log-error=/var/log/mysqld.log
错误日志文件路径,记录启动错误、运行警告、崩溃等信息。pid-file=/var/run/mysqld/mysqld.pid
存放 mysqld 主进程 PID 的文件路径,用于进程管理。character-set-server=utf8mb4
设置数据库服务器默认字符集为 UTF-8(支持 emoji 等扩展字符)。default-storage-engine=InnoDB
默认的存储引擎类型,通常是 InnoDB,支持事务、外键。max_connections=200
最大并发连接数限制,根据服务器资源配置可适当调高。sql_mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
SQL 模式,控制 MySQL 的语法兼容性与行为:STRICT_TRANS_TABLES
:严格模式,禁止插入非法数据。NO_ENGINE_SUBSTITUTION
:禁止指定不支持的存储引擎时自动替换。
3. [mysqld_safe]
(可选)
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
mysqld_safe
是一个启动脚本,会自动重启 mysqld 崩溃的服务。
🧪 三、如何查看当前实际使用的配置路径?
可以使用以下命令确认 MySQL 使用的配置文件和数据目录:
# 查看实际使用的配置文件路径
mysqld --verbose --help | grep -A 1 "Default options"
# 查看数据目录
mysql -u root -p -e "SHOW VARIABLES LIKE 'datadir';"
# 查看错误日志路径
mysql -u root -p -e "SHOW VARIABLES LIKE 'log_error';"
🔍 四、MySQL 配置文件加载顺序(从低到高)
当启动 mysqld 服务时,它会按以下顺序查找配置文件(如果存在会加载):
/etc/my.cnf
/etc/mysql/my.cnf
/usr/etc/my.cnf
~/.my.cnf
(当前用户的 home 目录)
✅ 五、常见调优建议
参数 | 建议修改 |
---|---|
max_connections | 提高以支持更多并发连接 |
innodb_buffer_pool_size | 设为物理内存的 60%-80% 提升 InnoDB 性能 |
log_bin | 启用二进制日志以支持主从复制 |
slow_query_log | 启用慢查询日志,优化慢 SQL |
query_cache_size | 对于低并发可启用查询缓存(新版已废弃) |
🧷 六、总结
通过 yum
安装的 MySQL 在 CentOS 7 上具有规范的目录结构和默认配置。理解各目录与配置文件的意义,有助于我们更好地部署、运维和优化数据库服务。
如需自定义配置或迁移数据目录,只需修改 /etc/my.cnf
中的相关字段并重启服务。
systemctl restart mysqld
THE END
暂无评论内容