从零部署MySQL 5.7.19:一份规避常见“坑点”的保姆级图文指南
1. 环境准备下载与解压MySQL 5.7.19第一次安装MySQL时我踩过的最大坑就是选错安装包版本。MySQL官网提供了两种格式的Windows安装包MSI安装程序和ZIP压缩包。实测下来ZIP版更适合开发者因为它不需要图形化安装向导直接解压就能用还能避免权限问题。打开浏览器访问MySQL官方下载页建议用Edge或Chrome在Archives板块找到5.7.19版本。这里有个细节要注意一定要选winx64后缀的包32位系统选win32。我遇到过有人下载了Linux版解压后一堆无法识别的文件。下载完成后建议把zip包放在D盘根目录比如D:\mysql-5.7.19-winx64.zip这样后续操作路径更简单。解压时容易忽略的细节不要直接双击zip包操作一定要完整解压到目标文件夹路径中不要有中文或空格像D:\数据库\mysql 5.7这种路径后续会报错解压后的文件夹建议重命名为简单英文比如mysql-5.7.192. 配置系统环境变量很多新手卡在mysql不是内部命令的错误根本原因是环境变量没配好。我教大家一个傻瓜式配置法右键此电脑→属性→高级系统设置→环境变量在用户变量不是系统变量新建MYSQL_HOME值填你的MySQL解压路径比如D:\mysql-5.7.19找到系统变量的Path点击编辑→新建添加%MYSQL_HOME%\bin这里有个隐藏技巧修改完环境变量后一定要重启命令提示符才能生效。我当初以为点确定就完事了结果死活不识别mysql命令折腾了半天才发现要新开CMD窗口。验证是否成功的方法mysql --version如果显示版本号就说明配置正确如果报错就要检查路径是否包含多余空格或特殊字符。3. 创建my.ini配置文件这是最容易出错的环节我见过各种奇葩错误文件保存成了txt格式应该是.ini编码不是ANSI导致服务启动失败路径用了\反斜杠必须用/正斜杠用记事本新建文件时务必注意保存类型选所有文件文件名用英文引号包裹my.ini编码选择ANSIUTF-8会报错这是我优化过的配置模板[mysql] default-character-setutf8mb4 [mysqld] port3306 basedirD:/mysql-5.7.19 datadirD:/mysql-data max_connections200 character-set-serverutf8mb4 default-storage-engineINNODB sql_modeNO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES关键参数说明basedir必须和你的解压路径完全一致datadir建议新建空文件夹不要用已有目录utf8mb4比utf8支持更多特殊字符如emoji4. 安装MySQL服务在bin目录下以管理员身份运行CMD时我推荐先用shift右键选择在此处打开命令窗口这样不用手动cd到目录。然后执行mysqld --install如果看到Service successfully installed才是真成功。常见的安装失败原因没管理员权限必须右键选以管理员身份运行之前安装过残留服务先用sc delete mysql清除VC运行库缺失安装2015版运行库初始化数据库时要用mysqld --initialize --console这个命令会在datadir生成初始数据库并输出临时密码。千万要截图保存这个密码我有次手快关掉了窗口只能删掉datadir重新初始化。5. 启动服务与修改密码启动服务的命令看似简单net start mysql但可能遇到错误1067这通常是因为my.ini路径错误应该放在MySQL根目录datadir目录有旧数据删除后重新初始化端口3306被占用用netstat -ano查看登录时有个隐藏坑点临时密码包含特殊字符时必须用英文引号包裹mysql -uroot -p临时密码修改密码的SQL要特别注意分号ALTER USER rootlocalhost IDENTIFIED BY 新密码;建议密码设置8位以上包含大小写字母和数字。改密成功后建议立即执行flush privileges;否则可能出现权限未更新的情况。6. 验证安装成功的终极测试完成所有步骤后建议做这三个检查服务是否自动运行任务管理器→服务里查看MySQL状态能否用Workbench连接测试远程访问能力执行基本SQL语句CREATE DATABASE test; USE test; CREATE TABLE users(id INT PRIMARY KEY); INSERT INTO users VALUES(1); SELECT * FROM users;如果全部通过说明你的MySQL已经完美运行。遇到问题别急着重装先检查error日志在datadir目录下.err文件里面通常有详细错误说明。