第二阶段-第二章—8天Python从入门到精通【itheima】-129节(MySQL的安装)
目录
129节——MySQL的安装
1.学习目标
2.MySQL的介绍
3.MySQL的不同版本
4.进入MySQL遇到的error的解决
一、问题原因
二、解决步骤
1. 找到配置文件(my.ini 或 my.cnf)
2. 编辑配置文件,删除不兼容的参数
3. 检查配置文件中的其他不兼容参数
4. 重启 MySQL 服务
5. 再次尝试登录
三、其他可能的解决办法
1. 创建最小配置文件
2. 检查环境变量
四、验证修改是否成功
总结
5.如果重新下载MySQL
【1】在MySQL官网下载其相应的安装包
【2】对于MySQL的安装包的图形化界面的相关文件配置(其实一路都是默认,一直next直到安装好)
【3】配置MySQL在Windows系统中的环境变量
【4】检验MySQL的下载安装和其相关环境变量的配置是否成功
好了,又一篇博客和代码写完了,励志一下吧,下一小节等等继续:
129节——MySQL的安装
1.学习目标
1.在Windows系统中成功安装MySQL
2.MySQL的介绍
MySQL是一个中小型的数据库,体积小、交互反应速度快、使用成本低,因此大规模应用于自学和一些企业的使用。(分为商业版和社区版)
3.MySQL的不同版本
免费版:
单机版:MySQL community server
集群版:MySQL cluster
收费版:单机版:MySQL enterprise edition
集群版:MySQL cluster CGE
4.进入MySQL遇到的error的解决
我在MySQL的Windows系统下的cmd窗口输入这个命令,但是他不提示我输入密码,反而爆出了这样的一个错误?怎么弄?
D:\Mysql\mysql-8.0.32-winx64\bin>mysql -uroot -p
mysql: [ERROR] unknown variable 'log-output=FILE'.
从你给出的错误
mysql: [ERROR] unknown variable 'log-output=FILE'
能够看出,MySQL 在启动时没办法识别配置文件里的log-output=FILE
这个参数。下面为你详细分析可能的原因以及对应的解决办法:一、问题原因
这个错误一般是由 MySQL 版本不兼容 或者 配置文件格式有误 造成的。
- 版本兼容性问题:在 MySQL 8.0 及之后的版本中,
log-output
这个参数已经被弃用了,不过你的配置文件里可能还保留着它。- 配置文件位置异常:MySQL 可能读取了错误的配置文件,比如旧版本的配置文件。
二、解决步骤
1. 找到配置文件(my.ini 或 my.cnf)
MySQL 的配置文件一般位于安装目录或者
C:\ProgramData\MySQL\MySQL Server X.X\
路径下。你可以通过以下命令来查看 MySQL 实际读取的配置文件:bash
D:\Mysql\mysql-8.0.32-winx64\bin>mysql --help | findstr /i "my.ini"
2. 编辑配置文件,删除不兼容的参数
使用文本编辑器(像 Notepad++)打开配置文件,把以下不兼容的参数删除或者注释掉:
ini
# 注释或删除这些行 # log-output=FILE # general_log_file="mysql.log" # general_log=1
3. 检查配置文件中的其他不兼容参数
除了
log-output
之外,MySQL 8.0 还有一些其他被弃用的参数,例如:ini
# MySQL 8.0 不再支持 # sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO
建议你把这些参数更新为 MySQL 8.0 支持的格式:
ini
sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
4. 重启 MySQL 服务
修改完配置文件之后,需要重启 MySQL 服务,让更改生效:
bash
# 以管理员身份打开CMD net stop MySQL80 # 停止服务(服务名可能是 MySQL 或 MySQL80 等) net start MySQL80 # 启动服务
5. 再次尝试登录
重启服务之后,再次尝试登录 MySQL:
bash
D:\Mysql\mysql-8.0.32-winx64\bin>mysql -uroot -p
三、其他可能的解决办法
1. 创建最小配置文件
如果你不确定配置文件出了什么问题,可以临时创建一个最简配置文件
my.ini
,内容如下:ini
[mysqld] basedir = D:/Mysql/mysql-8.0.32-winx64 datadir = D:/Mysql/mysql-8.0.32-winx64/data port = 3306 character-set-server = utf8mb4
然后使用
--defaults-file
参数指定这个配置文件来启动 MySQL:bash
D:\Mysql\mysql-8.0.32-winx64\bin>mysql --defaults-file="D:\Mysql\my.ini" -uroot -p
2. 检查环境变量
要确保环境变量
MYSQL_HOME
或者PATH
没有指向其他版本的 MySQL。四、验证修改是否成功
登录成功之后,可以通过以下命令查看 MySQL 的配置信息:
sql
SHOW VARIABLES LIKE 'log_output'; SHOW VARIABLES LIKE 'general_log';
在 MySQL 8.0 中,正确的配置应该是:
plaintext
+---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_output | TABLE | +---------------+-------++---------------+-------+ | Variable_name | Value | +---------------+-------+ | general_log | OFF | +---------------+-------+
总结
这个问题主要是由于配置文件和 MySQL 版本不兼容导致的。通过删除或者更新不兼容的参数,就可以解决登录失败的问题。如果还有其他错误,建议查看 MySQL 的错误日志(通常位于
data
目录下的.err
文件),获取更详细的错误信息。
然后我在MySQL的my.ini配置文件中,将下图的这几行选中的内容都注释了以后,就成功的可以正常的在cmd窗口中,进入到MySQL的bin目录下,输入:mysql -uroot -p,然后正常的输入密码,就可以启动我的MySQL8.0.32的版本了,其不能打开的大致原因,大概就是上述内容中说道的MySQL8.0版本以上的系统不兼容问题!!!
5.如果重新下载MySQL
【1】在MySQL官网下载其相应的安装包
进入到MySQL的官网(www.mysql.com),进入到downloads页面,可选择然后我们选择for Windows,然后就可以选择对应的MySQL的不同版本进行安装,博主今天下午去看MySQL的最新版本已经到了8.0.42,不过我的版本是之前的8.0.32。
如果选择下载,选择哪个下载内存比较大的离线安装版是最稳妥的安装方式,点击好download,只需要等待一会,浏览器就会自动安装好了。
【2】对于MySQL的安装包的图形化界面的相关文件配置(其实一路都是默认,一直next直到安装好)
打开相应的下载好的安装包,对于所有的弹框,一路点击“是”,一路下去就好。
对于这样的安装页面,一路点击next下一步就好(这里其实是在让你选择MySQL的相应的组件,对于学习者,选择其默认的developer deafult【开发者默认】就行)。
然后就是一路的默认的next和execute一直点击下去,让其安装。
配置端口和电脑,还是选择默认就好:
授权方法选择安全和高加密的,同样也是默认的:
设置root账户的密码:
一路默认,一路next。一路finsh。
这里的shell和workbench学习者目前都用不到,不用勾选了!!
【3】配置MySQL在Windows系统中的环境变量
如下图为,MySQL的配置的文件夹:
打开相应的MySQL下的bin文件夹,复制其路径,准备做环境变量的配置:
【我的MySQL的bin文件夹的路径是这样的:D:\Mysql\mysql-8.0.32-winx64\bin】然后配置Windows的环境变量:
1.此电脑——右键单击选择“属性”——高级系统设置——环境变量——系统变量——找到“Path”——双击打开——新建,然后将刚才的路径CV进去。
我的环境变量是这样写的:【这样写好像不太对】
这样写肯定对:
然后也可以这样写,更加方便、简洁、易懂:
【4】检验MySQL的下载安装和其相关环境变量的配置是否成功
我的MySQL是别人给我发下了MySQL8.0.32的软件包,然后自己配置的环境变量是这样的:
因为我的MySQL放在了D盘下,所以切换到D盘,直接输入:mysql -uroot -p,若是直接能够弹出输入密码,并输入后成功进入MySQL,那环境变量才是配置对了,就像下图所示:
好了,又一篇博客和代码写完了,励志一下吧,下一小节等等继续:
Patrick:
你扛着 50 斤面爬楼梯时的喘息,和你调试代码时盯着报错信息的眼神,本质上是同一种东西 —— 那是 “和自己死磕” 的声音。
大卫・戈金斯说 “痛苦是软弱离开身体的声音”,你昨晚的 30600 步、5 公里夜跑、扛面时的咬牙,都是在把 “软弱” 一点点挤出去。肌肉酸痛算什么?那是身体在重建更强的纤维;累到下床都费劲又怎样?那是意志在给 “极限” 重新划线。你和自己签的 “3 万步契约”,从来不是和微信步数较劲,是在练一种本事 ——让 “说到” 比 “做到” 先一步,让 “痛苦” 比 “放弃” 多一秒。
想想你学 MySQL 时,对着报错信息一点点改配置文件的耐心;想想你写面向对象代码时,给每个方法加注释的较真。这种 “轴”,在健身房是汗水,在代码里是逻辑,本质上都是 “不糊弄自己” 的勋章。现在浑身疼?正常。洛奇打完比赛也得躺几天,但他下次出拳只会更狠;你今天快走的 5797 步,比昨天少了些跑量,但每一步都在告诉身体:“歇可以,认怂不行。”
30 多度的夏天,早晚的凉快时光是给你的 “窗口期”,就像你学习时抓住的每段专注时刻。今晚的 5 公里、10 公里,不是任务,是你给 “Patrick” 这个名字盖的章 —— 证明这个名字后面,站着一个 “说 3 万步就不会少一步” 的硬骨头。
疼就疼着吧,这是强者的日常。明天醒来,肌肉会记住这种疼,意志会消化这种疼,然后带着你再冲一次 3 万步。
毕竟,能和自己签契约的人,从来不是普通人。
一个看你把 “地狱周” 走成 “日常” 的朋友
2025 年 7 月 16 日