如何卸载mysql教程(按照步骤可完全卸载)

Posted 码云铁粉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何卸载mysql教程(按照步骤可完全卸载)相关的知识,希望对你有一定的参考价值。

步骤1:关闭MySQL服务

右击【计算机】,选择【管理】,打开“计算机管理”界面

选择【服务和应用程序】中的【服务】,在右侧找到【mysql】,右键,选择【停止】

步骤2:卸载mysql软件

可以在控制面板中卸载,把mysql相关的全部卸载掉,mysql安装包也卸载掉,一会安装的时候重新下载安装包就行

也可以使用软件管家来卸载

步骤3:删除MySQL在电脑硬盘上物理位置上的所有文件

1、卸载过后删除C:\\Program Files (x86)\\MySQL该目录下剩余了所有文件,把mysql文件夹也删了

2、删除HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet002\\Services\\Eventlog\\Application\\MySQL文件夹,如果没有可以不用删除了。

3、删除C盘下的C:\\ProgramData\\MySQL 所有文件,如果删除不了则用360粉碎掉即可,该programData文件是隐藏的默认,设置显示后即可见

4、关键!!!!删除C:\\Documents and Settings\\All Users\\Application Data\\MySQL下的文件夹,一定要删,你可以直接复制粘贴,就会看到这个文件夹

注:可以通过window系统自带的关键字查找功能来查找相关联的文件

步骤4:MySQL的注册表信息

注:这步是最繁琐的也是最为关键的,很多人就是因为在这步骤中没有清理干净注册表信息,从而不能重新安装成功。

1、windows+R运行“regedit”文件,打开注册表

2、删除注册表:HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Services\\Eventlog\\Application\\MySQL文件夹,按照这个路径一个一个打开

步骤5:重启下电脑

这样就可以重新安装MySQL软件了!

篇二:

彻底删除mysql方法
1、首先,先在服务(开始——>控制面板——>管理工具——>服务)里停掉MySQL的服务。打开控制面板-添加删除程序,找到MySQL,卸载。或者用360安全卫士来卸载也行。也可以用mysql的那个安装程序删除

2、把安装好的MYSQL卸载了,但这对于卸载MySQL来说这只是一半,还有重要的另一半是要清理注册表。我们要进入注册表在开始-运行里面输入regedit,打开注册表

3、 找到关于MYSQL的项把他们都删除,要一个项一个项的查找把他们都删除,这样在安装的时候就可以了。其实注册表里MySQL的项就是这三项:
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQL

HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Application/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Application/MySQL

4、还有就是C:/WINDOWS 下的my.ini文件也删除!

这样,把上面的四项删除了之后,MySQL就基本卸载完全了。如果你还不放心的话,可以在C盘查找mysql,把相关的项都删除。

如何完全卸载Mysql数据库

  最近在研究hashmap的扩容机制,作为一个小白,相信我的理解,对于一些同样是刚刚接触hashmap的白白是有很很大的帮助,毕竟你去看一些已经对数据结构了解透彻的大神谈hashmap的原理等,人家说的很高大上,时不时会夹着稍许的英文你也看不懂是吧,不过这样显得比较有逼格哈哈。在正文之前,我非常有必要给刚刚接触hashmap以及没有学过数据结构(其实数据结构我了解也不多哈哈)的小伙伴普及几个知识,你记住就行了:

     1. 对于刚接触hashmap,hashmap你就暂时理解为哈希表(hash表),结构为“数组+链表”;如果说到表的长度,那指的是数组长度。

     2. “数组+链表”的结构专业术语叫“链表散列”,说简单点,一个数组上的每个位置存储的一个单链表;实际上数组的每个位置记录着是单链表的第一个节点,有了第一个节点后面不就串起来了嘛

     3. hashmap在jdk1.8前的结构是“数组+(单)链表”,在jdk1.8,结构就引入了“数组+链表+红黑树”,不过在这里我们只讨论1.8之前

     4. hashmap在添加元素时使用的是“尾插法”,而在扩容时转移数据使用的是“头插法”;后半句话给我重点记着,后面的源码就涉及到这个

     5.hashmap扩容的本质是重新创建一个原有数组长度2倍的新数组。

     6. 新表的节点分布 并不一定 跟 旧表 一致。比如说旧表的oldTable[0]上有key(0)->key(1)->key(2),而到新表这里newTable[0]就可能变成了key(2)->key(0)【头插法】,而key(1)在其他位置了。

 

  好了,开始进入正题!我们来研究jdk1.8前的hashmap的扩容原理(为什么没有1.8呢?因为我还没去看哈哈);它扩容最核心的方法就是resize(),源码如下:

//hashmap的扩容方法
    void resize(int newCapacity) {
        Entry[] oldTable = table;    //把当前的hash表赋值给一个临时数组,这个临时数组代表 旧hash表
        int oldCapacity = oldTable.length; //得到旧hash表的长度
        if (oldCapacity == MAXIMUM_CAPACITY) { //如果判断旧hash表的长度(其实是数组长度)等于最大容量值
            threshold = Integer.MAX_VALUE; //把Integer.MAX_VALUE赋值给当前的阈值,它的意思就是不再扩容了
            return;
        }
 
        Entry[] newTable = new Entry[newCapacity];  //创建一个新的hash表
        transfer(newTable, initHashSeedAsNeeded(newCapacity)); //这个是重点,这个方法实现将旧hash表的数据放到新的hash表中
        table = newTable;  //当前的hash表换成新的hash表了
        threshold = (int)Math.min(newCapacity * loadFactor, MAXIMUM_CAPACITY + 1);  // 有新表后,阈值是需要重新计算的
    }

  上面代码中,我们真正要关注的是transfer(),你看它方法名就取得很明显,转移的意思是吧,源码如下:

   /**
     *  把 旧表 的 数据 往新表上挪
     */
    void transfer(Entry[] newTable, boolean rehash) {
        int newCapacity = newTable.length; //得到新表的长度
        for (Entry<K,V> e : table) {    //这里table是旧表,这里是遍历旧表,把旧表的数据往新表上转移
            while(null != e) {  //如果当前节点不为空
                Entry<K,V> next = e.next;      //next是一个临时变量,用来引用或保存当前节点指向的下一节点,比如说当前节点是key(3),key(3)->key(5),
                            那next就暂时保存key(5)
                if (rehash) { //重新计算hash
                    e.hash = null == e.key ? 0 : hash(e.key);
                }
                int i = indexFor(e.hash, newCapacity); //这个挺重要的,它是重新计算我们当前的(旧)节点应该放到新表的哪个位置上
                e.next = newTable[i];     //超级重点,它的作用是断开当前节点与旧表的联系,啥意思呢? 还是刚才的例子当前节点是key(3),key(3)->key(5),
                          key(3)现在不指向key(5)了,已经投奔(指向)新表上的某个位置了


                newTable[i] = e;           //超级重点+,头插法来了,把当前的节点赋值给新表的某个位置,作用就是旧节点复制到新表上了;意思是每轮循环的当前节点都会
                         插入到新数组上的某个单链表的第一个位置,作为单链表的头节点

                e = next;             //把刚才保存的下一节点 作为下一轮循环的当前节点
            }
        }
    }

  我尽量把解释都放到了源码上面,方便大家查看,减少不必要的页面上下滚动带来的眼睛疲劳(我真是活雷锋哈哈),后面我会去看jdk1.8的源码,会再次为大家分享。

  如果觉得说的勉强还行的话,点个推荐呗!

以上是关于如何卸载mysql教程(按照步骤可完全卸载)的主要内容,如果未能解决你的问题,请参考以下文章

Linux(CentOS7)安装与卸载MySQL8.0图文详解

centos下完全卸载mysql

SQL Server 2017数据库卸载教程

如何卸载mysql干净

mysql完全卸载大全

完全卸载MySQL