MySQL安装配置教程:超详细图文教程(附MySQL安装包)

发布时间:2026/10/31 8:58:35

MySQL安装配置教程:超详细图文教程(附MySQL安装包) 安装MySQL的方式有很多种但二进制安装凭借“解压即用”的特点成为生产环境中最推荐的部署方式。本文基于实际运维经验从目录规范、用户创建到配置文件优化完整记录MySQL 5.7二进制安装的全过程并总结了6类常见启动失败案例及解决方案。还在为源码编译安装MySQL头疼吗二进制版本安装不仅快速而且稳定可靠。本文将手把手教你如何在Linux系统以CentOS 7为例上安装MySQL 5.7的二进制版本图文详解。适用人群运维工程师、后端开发、云服务器使用者、Linux初学者前置要求一台CentOS 7服务器如果还没有可以参考我前面的文章VMware安装centos教程https://blog.csdn.net/weixin_41558294/article/details/162388432一、MySQL安装规范MySQL安装方式二进制安装源码编译安装、yum 、rpmMySQL运行用户mysql:mysql 注意该用户是虚拟用户只是用于mysql进程运行使用不允许登录、不创建家目录 切换到root用户useradd-s/sbin/nologin-MmysqlMySQL目录规范下载目录 /server/tools 系统目录 /opt/mysql/mysql-xx.xx 软连接ln-s/opt/mysql/mysql-xx.xx /usr/local/mysql 数据目录 /data/mysql/mysqlport/{data,logs}配置文件 /data/mysql/mysqlport/myport.cnf确定libc版本2.12小于2.12会有报错[roottest ~]# ldd --versionldd(GNU libc)2.17Copyright(C)2012Free Software Foundation, Inc. This isfreesoftware;see thesourceforcopying conditions. There is NO warranty;not evenforMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 由 Roland McGrath 和 Ulrich Drepper 编写。MySQL下载通过网盘分享的文件mysql-5.7.44-linux-glibc2.12-x86_64 链接: https://pan.baidu.com/s/12f0rVP1qfbhNLphWAw-Hww?pwdtkp5 提取码: tkp5 --来自百度网盘的分享二、二进制安装MySQL1. 创建MySQL虚拟用户useradd-s/sbin/nologin-Mmysql2. 创建MySQL目录mkdir-p/server/toolsmkdir-p/opt/mysqlmkdir-p/data/mysql/mysql3306/{data,logs}cd/server/tools3. 上传MySQL二进制包rz如果没有这个工具安装 yum install -y lrzsz4. 解压MySQL二进制包tarxf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz5. 将软件部分移动到指定目录mvmysql-5.7.44-linux-glibc2.12-x86_64 /opt/mysql/mysql-5.7.446. 创建软连接ln-s/opt/mysql/mysql-5.7.44/ /usr/local/mysql7. 删除mariadbrpm-e--nodepsmariadb-libs8. 配置文件整理编辑/data/mysql/mysql3306/my3306.cnf[mysqld] usermysql basedir/usr/local/mysql datadir/data/mysql/mysql3306/data socket /data/mysql/mysql3306/mysql.sock server_id 1 port 3306 log_error/data/mysql/mysql3306/logs/error.log log_bin/data/mysql/mysql3306/logs/mysql-bin binlog_formatrow gtid_modeon enforce_gtid_consistencytrue log_slave_updates1 max_connections1024 wait_timeout60 sort_buffer_size2M max_allowed_packet32M join_buffer_size2M innodb_buffer_pool_size128M innodb_flush_log_at_trx_commit1 innodb_log_buffer_size32M innodb_log_file_size128M innodb_log_files_in_group2 binlog_cache_size2M max_binlog_cache_size8M max_binlog_size512M expire_logs_days7 slow_query_logon slow_query_log_file/data/mysql/mysql3306/logs/slow.log long_query_time0.5 log_queries_not_using_indexes19. 安装MySQL依赖包 yum install libaio-devel -y yum install numactl -y 10. 更改MySQL相关目录的用户组 chown -R mysql:mysql /data/* 11. 初始化MySQL数据库 /usr/local/mysql/bin/mysqld --defaults-file/data/mysql/mysql3306/my3306.cnf --initialize-insecure --usermysql --basedir/usr/local/mysql --datadir/data/mysql/mysql3306/data 12. 加入环境变量编辑 vim /etc/profile PATH/usr/local/mysql/bin:$PATH source /etc/profile 13. 启动MySQL mysqld --defaults-file/data/mysql/mysql3306/my3306.cnf 14. 查看是否启动成功 netstat -lntup |grep mysql 15. MySQL8.0安装教程Linux安装MySQL 8.0教程https://blog.csdn.net/weixin_41558294/article/details/162642562Windows安装MySQL 8.0教程https://blog.csdn.net/weixin_41558294/article/details/162705242三、首次登录MySQL与MySQL密码修改3.1 无密码登录# 本地登录mysql-uroot-p-S/data/mysql/mysql3306/mysql.sock3.2 修改root密码# MySQL 5.7中password字段已改为authentication_stringALTERUSERrootlocalhostIDENTIFIED BYyour_new_password;3.3 清理无用用户DELETE FROM mysql.user WHERE user!root;四、MySQL启动失败常见问题与排查4.1 MySQL目录权限问题错误信息[ERROR] Could not open file /data/mysql/mysql3306/logs/error.log for error logging: Permission denied原因数据目录的所有者不是mysql用户解决chown-Rmysql:mysql /data/mysql4.2 MySQL配置文件参数错误错误信息[ERROR] unknown variable xxx原因参数拼写错误或该版本不支持该参数解决检查配置文件修正错误参数4.3 MySQL配置文件未正确加载解决启动时必须通过--defaults-file指定配置文件mysqld--verbose--help|grepdefaults4.4 MySQL端口被占用错误信息[ERROR] Do you already have another mysqld server running on port: 3306?解决# 查找占用端口的进程netstat-lntup|grep3306# 修改配置文件中的端口或停止冲突的服务4.5 MySQL二进制日志文件丢失错误信息[ERROR] Failed to open log (file .../mysql-bin.000014, errno 2)解决编辑mysql-bin.index文件删除对应的日志记录4.6 MySQL共享表空间大小不匹配错误信息[ERROR] InnoDB: The Auto-extending innodb_system data file ./ibdata1 is of a different size解决在初始化前设置innodb_data_file_pathibdata1:12M:autoextend或删除data目录重新初始化4.7 MySQL配置文件隐形字符问题有时启动失败是因为配置文件中存在看不见的字符如Windows编辑器的换行符、BOM头等。解决使用dos2unix工具转换格式或用vim的:set ffunix修复。4.8 MySQL启动失败排查方法确认版本和启动方式明确当前MySQL版本及启动命令查看错误日志tail -100 /data/mysql/mysql3306/logs/error.log检查配置文件mysqld --defaults-filexxx --verbose --help检查系统资源磁盘空间、内存、端口等五、连接MySQL数据库的方式本地连接通过socketmysql-uroot-p-S/data/mysql/mysql3306/mysql.sock远程连接通过TCP/IPmysql-uroot-p-P3306-h192.168.58.51六、MySQL安全加固建议使用非root用户运行已通过mysql:mysql用户实现设置强密码避免使用默认或简单密码删除匿名用户DELETE FROM mysql.user WHERE User;限制远程root登录仅允许localhost登录定期备份配合二进制日志实现增量备份启用慢查询日志便于性能分析和优化七、常用MySQL管理命令-- 创建数据库CREATEDATABASEmydbCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;-- 创建用户并授权CREATEUSERappuserlocalhostIDENTIFIEDBYpassword;GRANTALLPRIVILEGESONmydb.*TOappuserlocalhost;-- 查看数据库状态SHOWSTATUSLIKEThreads_connected;SHOWPROCESSLIST;-- 导入SQL文件SOURCE/path/to/backup.sql;八、MySQL常用命令与基础操作8.1 MySQL数据库登录# 本地登录通过socketmysql-uroot-p-S/data/mysql/mysql3306/mysql.sock# 远程登录mysql-uroot-p-P3306-h192.168.58.51-u指定用户名-p提示输入密码-h指定主机IP地址-P指定端口8.2 MySQL数据库基础操作DDL查看与切换数据库-- 查看所有数据库SHOWDATABASES;-- 使用切换数据库USE数据库名;-- 查看当前使用的数据库SELECTDATABASE();创建与删除数据库-- 创建数据库指定字符集CREATEDATABASE数据库名CHARSETutf8mb4;-- 删除数据库DROPDATABASE数据库名;8.3 MySQL表的基础操作查看与删除表-- 显示当前数据库所有表SHOWTABLES;-- 删除表DROPTABLE表名;创建表CREATETABLE表名(列名 类型 约束1约束2,列名 类型 约束);示例CREATETABLEemp(enameVARCHAR(10),hiredateDATE,salDECIMAL(10,2),deptnoINT(2));查看表结构-- 查看表定义DESC表名;-- 查看详细表定义含创建语句SHOWCREATETABLE表名 \G;修改表结构-- 修改字段类型ALTERTABLEempMODIFYenameVARCHAR(20);-- 添加字段ALTERTABLEempADDCOLUMNageINT(3);-- 删除字段ALTERTABLEempDROPCOLUMNage;-- 字段改名ALTERTABLEemp CHANGE age age1INT(4);-- 修改表名ALTERTABLEempRENAMEemp1;8.4 MySQL数据操纵语句DML插入数据-- 指定字段插入INSERTINTOemp(ename,hiredate,sal,deptno)VALUES(zhangsan,2018-01-01,2000,1);-- 不指定字段按顺序全部插入INSERTINTOempVALUES(lisi,2018-01-01,2000,1);-- 批量插入INSERTINTOdeptVALUES(1,dept1),(2,dept2);更新与删除数据-- 修改记录UPDATEempSETsal4000,deptno2WHEREenamezhangsan;-- 删除记录DELETEFROMempWHEREenamezhangsan;查询数据-- 查询所有记录SELECT*FROMemp;-- 查询不重复的记录SELECTDISTINCTdeptnoFROMemp;-- 条件查询SELECT*FROMempWHEREdeptno1ANDsal3000;-- 排序和限制取前2条SELECT*FROMempORDERBYdeptnoDESCLIMIT2;-- 分页查询从第0条开始取10条SELECT*FROMempORDERBYdeptnoDESCLIMIT0,10;8.5 MySQL字段约束约束类型关键字说明主键约束PRIMARY KEY唯一标识每一行不能为NULL唯一约束UNIQUE列中所有值唯一非空约束NOT NULL列不能为空默认约束DEFAULT未提供值时使用默认值自动递增AUTO_INCREMENT自动生成唯一值外键约束FOREIGN KEY建立和维护表间关系8.6 MySQL系统变量管理查询变量-- 查询会话变量默认SHOWVARIABLESLIKE%read_only%;SHOWVARIABLESLIKE%chara%;-- 查询全局变量SHOWGLOBALVARIABLESLIKE%read_only%;修改变量-- 修改全局变量影响后续新连接重启失效SETGLOBALcharacter_set_clientutf8;-- 修改会话变量仅影响当前会话SETcharacter_set_clientgbk;查询状态变量用于监控和性能分析SHOWSESSIONSTATUSLIKE%Table_locks_immediate%;九、MySQL用户与权限管理9.1 创建用户-- 方式一使用CREATE USERCREATEUSER用户名主机IDENTIFIEDBY密码;-- 示例CREATEUSERtest1localhostIDENTIFIEDBYabc123;⚠️注意MySQL的账号由“用户名”和“登录主机”共同构成两者组合才是一个完整账号。9.2 授权管理-- 授予权限GRANT权限ON数据库.表TO用户主机IDENTIFIEDBY密码;-- 示例授予test数据库的所有权限GRANTALLONtest.*TOuser1%IDENTIFIEDBY123456;-- 查看用户权限SHOWGRANTSFORuserlocalhost;-- 撤销权限REVOKE权限ON数据库.表FROM用户主机;-- 示例撤销update权限REVOKEUPDATEON*.*FROMlisilocalhost;9.3 查看与删除用户-- 查看所有用户SELECTuser,authentication_string,hostFROMmysql.user;-- 删除用户DROPUSERuserhost;-- 重命名用户RENAMEUSERold_userhostTOnew_userhost;9.4 修改密码-- 修改当前登录用户密码SETPASSWORDPASSWORD(新密码);-- 修改其他用户密码SETPASSWORDFORuserhostPASSWORD(新密码);9.5 MySQL忘记root密码的解决办法# 1. 停止MySQL服务systemctl stop mysqld.service# 2. 在配置文件/etc/my.cnf的[mysqld]下添加skip-grant-tables# 3. 重启MySQL无密码登录后修改密码UPDATE mysql.user SET authentication_stringPASSWORD(新密码)WHEREuserroot;# 4. 删除配置文件中skip-grant-tables参数重启MySQL十、MySQL备份与恢复10.1 mysqldump全量备份mysqldump是MySQL自带的逻辑备份工具通过生成SQL脚本来备份数据库。备份单个数据库mysqldump-u用户名-p数据库名备份文件.sql# 示例mysqldump-uroot-pmydbmydb_backup.sql备份所有数据库mysqldump-uroot-p--all-databasesall_databases_backup.sql备份特定表mysqldump-uroot-p数据库名 表名表备份.sql# 示例mysqldump-uroot-pmydbusersusers_backup.sql备份时加常用选项mysqldump --all-databases --master-data2--single-transaction\--routines--events--triggersall_databases.sql10.2 数据恢复还原到指定数据库mysql-u用户名-p数据库名备份文件.sql# 示例mysql-uroot-pmydbmydb_backup.sql创建新数据库并恢复# 先创建数据库mysql-uroot-p-eCREATE DATABASE newdb;# 再恢复数据mysql-uroot-pnewdbmydb_backup.sql恢复所有数据库mysql-uroot-pall_databases_backup.sql10.3 备份注意事项备份频率根据业务需求确定重要数据建议定期备份备份文件存储存放在安全位置建议加密和访问控制测试恢复定期测试备份文件的有效性性能影响大规模备份建议在低峰时段进行备份和恢复过程中确保MySQL服务正在运行十一、MySQL性能优化11.1 核心性能参数连接管理参数参数说明建议值max_connections最大并发连接数并发用户数的1.2-1.5倍thread_cache_size线程缓存数量根据Threads_created指标调整内存配置参数参数说明建议值innodb_buffer_pool_sizeInnoDB核心缓存区物理内存的50%-70%key_buffer_sizeMyISAM索引缓存InnoDB为主时保持默认8MB日志配置参数参数说明建议值slow_query_log开启慢查询日志生产环境开启long_query_time慢查询阈值0.5-2秒innodb_log_file_size重做日志大小innodb_buffer_pool_size / 411.2 性能监控指标QPS/TPS每秒查询数/事务数反映系统吞吐量连接使用率Threads_connected / max_connections缓存命中率InnoDB缓冲池命中率应 99%锁等待时间Innodb_row_lock_waits值过高需优化事务11.3 诊断与调优工具-- 查看运行状态SHOWGLOBALSTATUSLIKEThreads%;-- 查看InnoDB引擎状态SHOWENGINEINNODBSTATUS\G-- 查看当前参数值SHOWVARIABLESLIKEmax_connections;-- 动态修改参数重启失效SETGLOBALmax_connections500;11.4 参数调优原则循序渐进每次只修改1-2个参数观察效果监控先行优化前建立性能基线因地制宜根据工作负载调整配置动态调整优先先在线调整观察效果再写入配置文件固化十二、MySQL主从复制配置12.1 环境准备两台服务器Master和Slave建议配置相同操作系统Linux如CentOS 7MySQL版本5.7或更高主从版本需一致确保两台服务器网络互通12.2 主库配置Master编辑配置文件/etc/my.cnf[mysqld] server-id1 log-binmysql-bin binlog-formatrow重启MySQL服务后创建复制用户CREATEUSERrepl%IDENTIFIEDBYyour_password;GRANTREPLICATIONSLAVEON*.*TOrepl%;FLUSHPRIVILEGES;获取二进制日志位置FLUSHTABLESWITHREADLOCK;SHOWMASTERSTATUS;-- 记录 File 和 Position 的值12.3 从库配置Slave编辑配置文件/etc/my.cnf[mysqld] server-id2 log-binmysql-bin binlog-formatrow relay-logmysql-relay-bin log-slave-updates1 read-only112.4 数据同步与启动复制# 在主库备份数据mysqldump --all-databases --master-data2--single-transactionall_databases.sql# 传输到从库scpall_databases.sql userslave_ip:/path/to/backup/# 在从库恢复mysql/path/to/backup/all_databases.sql配置从库并启动CHANGE MASTERTOMASTER_HOST主库IP,MASTER_USERrepl,MASTER_PASSWORD密码,MASTER_LOG_FILEmysql-bin.000001,MASTER_LOG_POS12345;STARTSLAVE;-- 检查复制状态SHOWSLAVESTATUS\G十三、日常运维与安全加固13.1 安全加固建议使用专用用户运行使用mysql:mysql虚拟用户运行服务删除匿名用户DELETE FROM mysql.user WHERE User;删除测试数据库DROP DATABASE test;限制root远程访问仅允许localhost登录最小化权限原则按需授予用户最小必要权限禁用匿名账户确保没有空用户名的账户13.2 日志管理MySQL日志类型包括错误日志、通用查询日志、二进制日志、慢查询日志日志类型说明配置参数错误日志记录启动、停止及运行错误log_error二进制日志记录DDL、DML等变更操作log_bin慢查询日志记录超过阈值的SQLslow_query_log通用查询日志记录所有连接和查询general_log13.3 日常监控要点监控数据库连接数、CPU使用率、内存使用率、磁盘空间定期分析慢查询日志优化SQL语句监控Threads_connected与max_connections的比率关注Innodb_row_lock_waits锁等待情况13.4 多实例部署MySQL支持在一台服务器上部署多个实例每个实例通过不同的端口提供服务。各实例之间相互独立拥有各自的datadir、port、socket和pid文件。# 多实例部署时每个实例使用独立的配置文件/data/mysql/mysql3306/my3306.cnf# 实例1端口3306/data/mysql/mysql3307/my3307.cnf# 实例2端口3307通过以上步骤你应该能在CentOS 7系统上顺利完成MySQL 5.7的二进制安装与配置。二进制安装方式相比源码编译更加快速便捷同时保持了良好的可控性非常适合生产环境部署。建议在实际操作中注意以下几点严格按照目录规范组织文件便于后期维护和多实例管理初始化时根据安全需求选择--initialize-insecure或--initialize遇到启动失败时第一时间查看error.log错误日志定位问题如果在安装过程中遇到问题欢迎在评论区留言交流。
延伸阅读

更多相关文章

2026/10/28 2:06:59

从感知机到注意力机制:一份深度学习核心概念演进指南

1. 感知机:深度学习的起点1957年,心理学家弗兰克罗森布拉特提出的感知机(Perceptron)模型,开启了人工神经网络的第一章。这个看似简单的结构,却蕴含着机器"学习"的原始智慧。感知机的核心原理就像…

2026/10/31 8:53:43

SAP利润中心转移价格:平行评估与AKE5/MB1B转储核算解析

简介:SAP利润中心转移价格专题PDF资料,面向企业财务与内部核算岗位人员,帮助理解如何以模拟市场交易的方式衡量各利润中心的经营成果。内容围绕AKE5前台设置、AKE7检查,以及库存转储时生成内部收入与内部成本凭证的逻辑展开&#…

2026/10/31 8:53:43

主流自助建站平台对比与选型指南

1. 自助建站平台概述 在当今数字化时代,拥有一个专业网站已成为个人和企业展示形象、开展业务的必备工具。对于非技术人员来说,自助建站平台(Website Builder)提供了一种无需编码知识即可快速搭建网站的理想解决方案。这类平台通常…

2026/10/31 8:53:43

AI日报:从信息过滤到高效追踪技术前沿的实操指南

“AI 日报”这种形式,为什么越看越上头每天早晨打开信息流,满屏都是“AI 日报”“AI 早报”“AI 周报”。说实话,我第一次看到这类内容时心里是有点抗拒的——这不就是把几篇热门文章标题攒在一起吗?真正用了一段时间、自己也上手…

2026/10/31 8:53:43

Antigravity CLI与Gemini Code Assist迁移指南及优化技巧

1. Antigravity与Gemini Code Assist技术解析 最近在开发者社区中,Antigravity CLI和Gemini Code Assist的讨论热度持续攀升。作为长期关注AI编程助手的开发者,我发现这两个工具正在重塑我们的编程工作流。Gemini Code Assist最初是作为Google Cloud的AI…

2026/10/31 8:53:43

Plot3D:面向教学与工程的轻量级交互式三维画板

1. 项目概述:这不是一块普通画板,而是一个能“托起空间”的三维创作界面 “立体画板--Plot3D”——光看这个名字,你脑子里可能立刻浮现出一堆旋转的曲面、飞舞的坐标轴,或者某个科研人员在屏幕上拖拽函数时瞳孔放大的瞬间。但我要…

2026/10/31 8:48:43

2026年GPU云主机选购指南与性能实测

1. 2026年国内GPU云主机市场现状最近两年深度学习和大模型训练需求爆发式增长,GPU云主机市场也经历了剧烈变化。根据我过去半年对国内主流云服务商的实测跟踪,有几点关键发现:价格战白热化:相比2024年,主流型号时租价格…

2026/10/30 20:55:10

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/30 20:55:10

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/30 20:55:09

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/31 0:02:41

猫狗目标检测数据集:VOC/COCO/YOLO三格式一体化实战包

简介:本资源是一套面向计算机视觉初学者与YOLO目标检测实践者的猫狗图像数据集及配套开发工具包,专为快速上手目标检测模型训练而设计。资源包含1000张真实场景高清猫狗图片,标注质量高,同时提供VOC(XML)、…

2026/10/31 0:02:41

HDU2017多校标程复现:算法竞赛工程化真题沙盒

简介:本资源为2017年HDU多校联合训练第一场官方配套资料,面向ACM程序设计竞赛备赛学生、算法爱好者及高校编程集训队成员,旨在提供权威解题参考与完整测试验证环境。压缩包共40个文件,含15份C标程(覆盖全部赛题&#x…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑