Ubuntu安装MySQL的三种方式以及卸载MySQL

 更新时间:2024年10月10日 11:29:58   作者:Leon_start  
在Linux系统中,卸载MySQL可通过dpkg-l和grep命令组合来查询已安装的MySQL相关软件包,然后使用适当命令进行卸载,安装MySQL时,可以选择直接安装或编译安装,直接安装需要设置密码,编译安装需选择带boost库的版本,初始化MySQL时要指定data目录

注意:我所有操作一开始就执行了:sudo su (进入特权模式,后续命令就不需要在用sudo提权了)

一.卸载MySQL

看个人习惯,我基本用的是第一种,简单粗暴

删除mysql的数据文件
sudo rm /var/lib/MySQL/ -R

删除mysql的配置文件
sudo rm /etc/mysql/ -R

自动卸载mysql(包括server和client)
sudo apt-get autoremove mysql* --purge
sudo apt-get remove apparmor

检查是否卸载干净
dpkg -l | grep mysql# 若没有返回,说明已完成卸载
dpkg --list|grep mysql  #首先在终端中查看MySQL的依赖项
sudo apt-get remove mysql-common #卸载
sudo apt-get autoremove --purge mysql-server-8.0 #卸载,看你自己安装的什么版本在卸载
dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P  #清除残留数据
dpkg --list|grep mysql   #再次查看MySQL的剩余依赖项,基本到这就干净了
sudo apt-get autoremove --purge mysql-apt-config  #如果有的话继续删除剩余依赖项

dpkg -l 命令会列出系统中所有已安装的软件包信息。结合grep,可以过滤出自己想要的内容。

输出第一列

一般为两个字母,分别代表(期望状态和当前状态)最常见的就是上图中的ii

期望状态标识:

  • 未知(u)
  • 安装(i)
  • 删除(r)
  • 清除(p)
  • 保持(h)

当前状态标识:

  • 未安装(n)
  • 已安装(i)
  • 仅存配置(c)
  • 仅解压缩(U)
  • 配置失败(F)
  • 不完全安装(H)
  • 触发器等待(W)
  • 触发器未决(T)

错误标识:

  • 需重装(R)

一般我们系统中最常见的就是ii(期望安装,并且已正常安装)。

还有一种比较常见的是rc(期望卸载,目前仅仅保留了一些配置信息)。

系统中所有的安装的包的内容都被记录在:/var/lib/dpkg/status,dpkg -l 命令就是读取的这个文件中的内容进行显示。

二.直接安装

sudo apt update && sudo apt upgrade
sudo su #进入特权模式,使用的是root权限,这样后续执行命令就不需要sudo
apt install -y mysql-server #安装的是最新版本,比如MySQL8.0的
mysql -V  #查看版本
mysql -uroot  #这种安装方式前期没有设置密码,直接登录

1.密码查询及更改2

若安装过程未设置密码或者设置了密码然后使用过程中忘记密码了,可以通过以下方式查询、修改密码

cat /etc/mysql/debian.cnf

在没有改密码之前用mysql -uroot 和这个获取用户密码登录都可以

2.修改密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

三.安装指定版本

选择tar压缩包,选择bundle版本(带部分依赖,比较全)

警告:注意安装顺序

1.安装mysql-community-client相关

dpkg -i mysql-common_8.0.20-2ubuntu20.04_amd64.deb
dpkg -i mysql-community-client-core_8.0.20-2ubuntu20.04_amd64.deb
dpkg -i mysql-community-client_8.0.20-2ubuntu20.04_amd64.deb

2.安装mysql-community-server-core

dpkg -i mysql-community-server-core_8.0.20-2ubuntu20.04_amd64.deb #这里应该会报错,缺少依赖,缺啥补啥
apt install -y libmecab2  #安装依赖,这里是我缺的依赖
dpkg -i mysql-community-server-core_8.0.20-2ubuntu20.04_amd64.deb

dpkg -i mysql-client_8.0.20-2ubuntu20.04_amd64.deb
dpkg -i mysql-community-server_8.0.20-2ubuntu20.04_amd64.deb

安装这二个的时候就会弹出设置密码,自己定义就好

mysql -V 
mysql -uroot -p123

到这里基本就没有问题了

四.编译安装

这里有两个版本的代码,一个带有boost的,一个没有,我们选择下面那个带boost的,可以省很多事,不然还要自己下载boost安装

1.装包解压

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.18.tar.gz
tar -zxvf mysql-5.7.18.tar.gz

2.安装依赖包

apt install -y cmake bison libncurses5-dev build-essential

3.编译安装

cd mysql-5.7.18/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_BOOST=boost
make && make install

4.添加用户组,和文件管理

groupadd mysql
useradd -g mysql mysql
mkdir /usr/local/mysql/data
chown -R mysql /usr/local/mysql
chgrp -R mysql /usr/local/mysql

五、初始化mysql

指定数据目录data位置 datadir

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

这个会生成一个很随机的密码,要备份一下:我的是:(udyv%Tmv0#e

六、编辑简单配置文件

vim /etc/my.cnf
//添加下面的内容
[client]
socket = /tmp/mysql.sock
 
[mysqld]
port=3306
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data

如果怕3306端口已经被占用,也可以写3307啥的

七.启动MySQL

一般启动或暂停模式:support-files/mysql.server start (stop)

下面把启动放到service下,可以快捷启动

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
update-rc.d mysqld defaults
service mysqld start
service mysqld status #确定已经启动

八.登录MySQL

ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
mysql -uroot -p'(udyv%Tmv0#e'

//重新修改密码 为123456
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
exit 退出

修改一下my.cnf ,添加用户和密码

vim /etc/my.cnf

重新用新密码登陆

九、设置远程连接

#所有主机都可以连接

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql>flush privileges;
exit

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySQL 联合索引与Where子句的优化 提高数据库运行效率

    MySQL 联合索引与Where子句的优化 提高数据库运行效率

    网站系统上线至今,数据量已经不知不觉上到500M,近8W记录了。涉及数据库操作的基本都是变得很慢了,这篇文章主要是说明配置并不是数据库操作慢的主要原因
    2012-01-01
  • 为什么MySQL数据库索引选择使用B+树?

    为什么MySQL数据库索引选择使用B+树?

    今天小编就为大家分享一篇关于为什么MySQL数据库索引选择使用B+树?,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • MySQL性能指标TPS+QPS+IOPS压测

    MySQL性能指标TPS+QPS+IOPS压测

    这篇文章主要介绍了MySQL性能指标TPS+QPS+IOPS压测,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • MySQL中日期型单行函数代码详解

    MySQL中日期型单行函数代码详解

    这篇文章给大家介绍MySQL中日期型单行函数的相关知识,包括返回当前日期时精确到日、秒的参考代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-06-06
  • session 加入mysql库的方法

    session 加入mysql库的方法

    本篇文章主要介绍了 session 加入mysql的方法,大家在开发过程中会遇到对数据库的操作,有时会遇到Session加入mysql,这里给大家提供了方法,
    2016-07-07
  • MySQL 8.0 Online DDL快速加列的相关总结

    MySQL 8.0 Online DDL快速加列的相关总结

    在实际的MySQL运维过程中,我们经常会遇到业务需要给某张表添加字段的情况,本文将介绍几种加字段的方法,感兴趣的朋友可以参考下
    2021-06-06
  • 检查MySQL中的列是否为空或Null的常用方法

    检查MySQL中的列是否为空或Null的常用方法

    在MySQL数据库中,我们经常需要检查某个列是否为空或Null,空值表示该列没有被赋值,而Null表示该列的值是未知的或不存在的,在本文中,我们将讨论如何在MySQL中检查列是否为空或Null,并探讨不同的方法和案例,需要的朋友可以参考下
    2023-11-11
  • mysql5.7 生成列 generated column用法实例分析

    mysql5.7 生成列 generated column用法实例分析

    这篇文章主要介绍了mysql5.7 生成列 generated column用法,结合实例形式分析了mysql5.7 生成列 generated column基本原理、用法及操作注意事项,需要的朋友可以参考下
    2020-02-02
  • mysql触发器实时检测一条语句进行备份删除思路详解

    mysql触发器实时检测一条语句进行备份删除思路详解

    遇到过这样一个需求,在一张表里会不时出现 “违规” 字样的字段,需要在出现这个字段的时候,把整行的数据删掉,针对这个需求我们该如何操作呢,下面跟随小编看下mysql触发器实时检测一条语句进行备份删除的解决思路,一起看看吧
    2021-09-09
  • 详解MySQL8的新特性ROLE

    详解MySQL8的新特性ROLE

    这篇文章主要介绍了详解MySQL8的新特性ROLE的相关资料,帮助大家更好的理解和使用MySQL8,感兴趣的朋友可以了解下
    2020-11-11

最新评论