• mysql安装完全排坑指南


    写在前面

    因为网上各类型的mysql安装到维护全流程各种小白遇到了各种花里胡哨的问题,而查找资料到寻找答案充斥着各种博文的原创和转载,而其中大量的信息,随着mysql的版本更新迭代,或者是一些博主投机取巧的改造方式,为以后的使用留下了潜在的隐患。看了太多无营养的文章,于是打算自己利用周日晚上的一点时光,趁着我病好了点(该死的过敏性鼻炎…),能整理一份这样的资料,服务大家。mysql可以安装完了用一学期,然后吃灰四年,但不能倒在第一步啊!

    一、你需要准备的基本原料

    • 一个mysql免安装压缩包(本文使用的是版本是mysql8.0,对应安装包文件+扩展名为 “mysql-8.0.22-winx64.zip”
      认准少林正宗,官网下载MySQL Community版本
    • 一台windows系统主机(本文使用的是windows10系统专业版的PC)

    二、完成准备工作后需执行的各步配置命令

    • 1.解压一份mysql到本地磁盘内

    准备一个空白文件夹到任意位置,我不建议在c盘新建文件夹,如果可以的话,我希望你的全部路径都是英文结构,且文件夹嵌套尽可能少,不包含特殊符号,保持全部小写。参考格式:D:\mysql,我不只是MySQL,我希望你整个电脑的全部文件,都能放在这样的文件目录下。

    • 2.把mysql的安装路径配置到你的环境变量里

    总是会遇到各种奇葩的电脑设置,有的同学桌面为了美观没有计算机的图标,甚至有的同学使用的是笔记本且触摸屏还坏掉了。。。(CRAZY!!!),请参考此通用方法,只需一块键盘即可操作。

    • 快捷键windows+E 打开你的文件资源管理器。

    在这里插入图片描述

    • 打开“我的电脑 - 属性 - 高级系统设置 - 环境变量”
      鼠标右键点击“此电脑”,键盘利用tab键+方向键+(shift+F10)的配合逐次打开属性 - 高级系统设置 - 环境变量,
      (这步都能卡住的,遇到或者窗口弹不出来的问题。如果你知道卡键是什么意思的话,解开你的alt或者ctrl键锁定,然后再windows+E。不知道直接重启电脑后windows+E)
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
    • 环境变量中将你的mysql软件路径放在path这个系统变量下
      点击path后,点击“编辑”,进入后,点击新建,然后把你的文件目录粘贴进去,保存后退出,可以重复进入一次path变量内,确认已经添加进去了。
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    环境变量中包含着系统为了正常调度各进程而必要存储的内容,包含了各种值。path这一变量存储着很多文件存储在磁盘位置的具体路径,计算机为了快速响应你的一些请求,

    “像一个图书馆的管理员用最快速度根据你的需求从一排排的书架上取出你需要的书并递给你。但书架数量太多,计算机没法做到每次从头开始查找你需求的那个文件,所以它选择性的把人们频繁请求的书类放的离自己近一点,自己每次都路过那个最高频的区域看一眼,有没有你要的书。如果没有,就再开始像原来一样,满图书馆的找。这样的操作越来越多,后来索性另指派一人专门盯着那片最高频的区域,你要的书如果不在这个高频区域,它也不会再尝试去别处寻找,会直接告诉你,我这里没有,你再去别的地儿找找吧。”

    前者演化成了计算机的搜索功能,后者成为了command命令行下的直接可执行程序,而path变量直接决定了哪些文件所在的文件夹会优先被查找到,极端来看,如果你把全磁盘每个文件夹的路径都录入到了path,那么command命令行程序(cmd.exe)就会像全盘搜索一样慢吞吞,甚至远不如搜索功能,毕竟windows下的搜索依赖的逻辑算法异常复杂,一切都为了节约搜索时间。那么path的重要性,我想你已经理解了,我们接下来的操作都是在命令行下直接执行的,录入path只不过是为了接下来命令中调度的mysql程序更加方便。包括你日后的使用,以及各类其他软件和mysql的关联,都及其依赖这个环境变量配置的结果。

    环境变量的设置,不仅是mysql会用到,基本各种编程语言,各种涉及计算机底层的运行库,都需要用到设置环境变量的操作。这一方法在很多场合都是通用的,希望你能作为一个计算机使用者,能够把这个步骤当作1+1一样记在脑子里,以后一定会有用的。

    到这里,第二步就结束了。

    • 3.建立你的mysql服务
      以下操作需要在管理员身份打开的cmd.exe或者powershell.exe下执行相应代码。打开对应窗口的方法是:
      (cmd/powershell)windows+R快捷键呼出运行窗口,输入cmd或者powershell,然后依次按住ctrl键+shift键+enter键。
      在这里插入图片描述

    (powershell)打开开始键的右键菜单,并点选windows powershell(管理员)以进入。
    在这里插入图片描述
    (写到这里真的觉得实在太废话了,但真的就是各种奇葩问题都能遇到,只希望多吸取经验,以后有类似工作能减少这种睿智的问题。)

    在你mysql解压的文件夹内新建一个my.ini文件,它默认是不存在的,需要我们自己新建,这是一个配置文件,约束了mysql各种使用中的设置信息。新建一个空白的txt文件,随后填入各种参数信息,最后更改txt后缀名为ini并保存。

    在windows下后缀名.ini的文件代表着具体的配置信息,my.ini中存储的就是mysql中部分参数的信息。以下附上我的个人配置参数。

    [mysqld]
    basedir ="D:\mysql"
    datadir ="E:\mysql_data"
    port=9981
    server_id =10
    character-set-server=gbk
    character_set_filesystem=gbk
    [client]
    port=1709
    default-character-set=gbk
    [mysqld_safe]
    timezone="CST"
    [mysql]
    default-character-set=utf8
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    关于my.ini中各参数的作用,请见以下博客内容:
    MySQL教程5-配置文件my.ini详解
    my.ini参数, 以及详细配置说明
    MySQL配置文件my.ini详解

    确保操作到最后,你的文件图标,文件类型都和我图中的my.ini保持一致。
    在这里插入图片描述

    basedir =“D:\mysql”
    datadir =“E:\mysql_data”
    留意上面文件中的这两个参数配置,你需要确保这两个参数的路径有文件夹存在,你自己设置的存mysql软件和未来占据大量磁盘空间存储数据的位置时要修改这两个参数等号后面的路径信息。它们表示的意思是:

    (basedir)你的基础mysql程序存储在D:\mysql内;
    (datadir)你的mysql服务配置,以及未来全部存储的数据存储在E:\mysql_data内;

    在安排你未来data的存储磁盘时,我还是建议把data文件夹放在一个空间不紧张的磁盘符内,以免之后用了很久一段时间之后,发现空间不足,又会遇到各种数据搬家的困扰。

    随后可以开始执行初始化操作,如下:

    # (此步需管理员权限执行,初始化MySQL程序)
    > mysqld --initialize
    
    • 1
    • 2
    # (此步需管理员权限执行,安装MySQL后台服务)
    > mysqld --install
    Service successfully installed.
    
    • 1
    • 2
    • 3
    # (此步需管理员权限执行,启动MySQL后台服务)
    > net start mysql
    MySQL 服务正在启动 .
    MySQL 服务已经启动成功。
    
    • 1
    • 2
    • 3
    • 4

    当mysql服务出现安装错误需要删除掉之前的服务重新安装时,卸载命令如下:

    # (此步需管理员权限执行)
    > mysqld -remove mysql
    # (此步需管理员权限执行,如果提示你remove失败因为MySQL还在运行,那么你需要先停止服务)
    > net stop mysql
    MySQL 服务正在停止.
    MySQL 服务已成功停止。
    # 之后再执行remove的操作即可
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 4.确认配置信息,排除潜在bug
      确认各项配置信息,这一步是奠基,如果没有任何基础我建议直接复刻一份结果,我也会尝试截止明白这些设置的意义。

      • 确认你的my.ini文件信息
      • 检查你的mysql服务具体注册表路径
        (此处是你的计算机名)\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\ (此处是你的mysql服务名)

    如果变更过mysql程序的路径,一定要在此处更新路径信息,否则会导致mysql服务无法启动等等问题。

    注册表信息

      • 获取你的数据库初始密码
        看一下第①条的my.ini文件,datadir ="E:\mysql_data"表明了你的data目录确定在了E盘,
    • 5.最后测试你的mysql是否初始化成功
      记得在此处,不必要关闭(意思就是关不关闭都不影响下一步,但接下来的小操作如果还在这个cmd.exe下执行就会有新的问题出现。)你之前执行了很多命令的这个cmd/powershell.exe命令窗口。
      我们新建一个命令行窗口,是否以管理员运行无所谓,cmd.exe 或者powershell.exe都是可以的。在新的窗口下尝试连接mysql数据库。详见下一章节。抱歉保姆级教程就是要想到你在安装时的各种疑问并尽可能加以解答。

    # (不必要管理员运行)
    >mysql -u root -up
    
    • 1
    • 2

    三、成功进入mysql后的首次语句执行

    在新的命令行窗口内,输入:

    >mysql -u root -up
    Enter password:
    
    • 1
    • 2

    接着输入你的初始密码,初始密码存在于你在my.ini里设置的datadir 对应的文件夹,在文件夹里有一个记录日常执行日志的文件, 文件名是你的电脑用户名,后缀名是.err,在这里根据对应的日志时间戳你可以看到你的初始密码。拿到之后,输入进去,见到下面的画面,恭喜你,成功了。
    首次执行返回结果

    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 9
    Server version: 8.0.28 MySQL Community Server - GPL
    
    Copyright (c) 2000, 2022, Oracle and/or its affiliates.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    当你兴高采烈的想要执行一句你再熟悉不过的sql时,会遇到蓝圈里的提示信息,它要求你变更一下初始密码,记得为你的数据库制定一个专属的root账户权限的密码。

    mysql> ALTER USER 'root'@'localhost' identified by '此处填写你的新密码';
    # 例如:
    mysql> ALTER USER 'root'@'localhost' identified by '1234';
    # 那么执行后,下次进入时初始密码就是1234了。
    
    • 1
    • 2
    • 3
    • 4

    四、给你的mysql装上可视化的界面(DBeaver)

    以上针对的mysql的操作都是可使用之前的必要步骤,如果你的mysql还不能正常使用,请勿进行此步。

    以下内容引自百度百科,真实性不做保障:

    • DBeaver是免费和开源(GPL)为开发人员和数据库管理员通用数据库工具。
    • 易用性是该项目的主要目标,是经过精心设计和开发的数据库管理工具。免费、跨平台、基于开源框架和允许各种扩展写作(插件)。
    • 它支持任何具有一个JDBC驱动程序数据库。
    • 它可以处理任何的外部数据源。

    DBeaver本身免费的特质决定了

    以下是DBeaver仅供连接mysql过程中的QA参考

    Q1.“Public Key Retrieval is not allowed”
    A1:请将DBeaver中配置连接过程中驱动属性一栏中的参数‘allowPublicKeyRetrieval’由False变更为True
    在这里插入图片描述


    Q&A部分

    Q1.“Failed to remove the service because the service is running”

    A1:mysql服务还在运行,执行操作需关闭mysql服务,关闭命令:

    # (此步需管理员权限执行)
    > net stop mysql
    MySQL 服务正在停止.
    MySQL 服务已成功停止。
    
    • 1
    • 2
    • 3
    • 4

    Q2.“net start mysql 发生系统错误 2。 系统找不到指定的文件。”

    A2:之前已经安装过mysql服务,但无法在服务中启动,或者通过命令提示符执行“net start mysql”后报错,这是由于安装了此服务,但在文件夹中找不到对应调起服务的文件导致的,这一问题多发于mysql程序变更了文件夹后,是注册表信息没有对应更新路径导致的。

    本地服务

    需要更新注册表信息。
    (此处是你的计算机名)\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\ (此处是你的mysql服务名)

    注册表信息
    将其修改路径后保存结果,之后再次尝试启动服务。

    ps:如果在注册表操作过程中,发生报错提示无法读取ImagePath的信息,切换一下注册表的不同文件夹后再返回修改即可。

    Q3.“net start mysql 服务名无效。 请键入 NET HELPMSG 2185 以获得更多的帮助。”

    A3:电脑中目前还没有mysql服务,需要安装mysql服务。

    # (此步需管理员权限执行,安装MySQL后台服务)
    > mysqld --install
    Service successfully installed.
    
    • 1
    • 2
    • 3

    解决。

    Q4.“mysqld : 无法将“mysqld”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。所在位置 行:1 字符: 1 + mysqld --initialize + ~~~~~~ + CategoryInfo : ObjectNotFound: (mysqld:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException”

    A4:cmd命令行下无法找到mysqld.exe,需要在环境变量中添加对应的文件夹目录。(参考本文 :二-2.)

    Q5.“MySQL 服务正在启动 MySQL 服务无法启动。服务没有报告任何错误。请键入 NET HELPMSG 3534 以获得更多的帮助。”

    A5:电脑中的mysqld.exe没有正常调度起mysql服务,网上基本对于这一问题的解决方案都是删除data文件夹,然后执行“mysqld --initialize”,这意味着对数据库的初始化。但我们还需要保留已有的数据。
    首先贡献给大家,当认为影响不大而决定重置数据库的操作方案,这个不复杂,只需要:

    • ①一定保证你的datadir指向的data文件夹内的全部文件都删除。
      如果出现部分文件因正在使用无法删除的情况,请停掉你的mysql服务。

    • ②初始化你的mysql服务,并从data文件夹下一个“用户名+后缀名为.err”的文件(例如:DESKTOP-E3O9JJ3.err)中获取你初始化数据库后的初始密码。

    # (此步需管理员权限执行,停止MySQL后台服务)
    > net stop mysql
    # 确认data文件夹的内容都清空之后,执行初始化命令
    > mysqld --initialize
    # 随后,获取你的初始密码。
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在DESKTOP-E3O9JJ3.err中,我的初始密码是:
    [Server] A temporary password is generated for root@localhost: sp04AfhUiq#*

    环境配置请自己做检查,检查内容参考本文第二步第三步的全部流程。

    Q6.“ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)”

    A6:未启动服务,请启动mysql服务。

    # (此步需管理员权限执行,启动MySQL后台服务)
    > net start mysql
    
    • 1
    • 2

    To Be Continued …

  • 相关阅读:
    F. Minimum Maximum Distance Codeforces Round 903 (Div. 3)
    熬夜肝出囊括Java后端95%的面试题解析
    uniapp小程序中的登录完整代码(兼容小程序和app)
    功率放大器的工作原理及选购技巧
    说说对Fiber架构的理解?解决了什么问题?
    数据结构(持续更新)
    node基础之三:http 模块
    基于SSM的智慧作业试题管理系统(有报告)。Javaee项目。
    微服务学习计划——SpringCloud
    websocket投送
  • 原文地址:https://blog.csdn.net/lixiaomie01/article/details/126090879