centos8中的MySQL卸载和安装

前言

前几天在自己的服务器上安装了一个NDB集群【而且还没有成功】

放弃治疗后用一台没有mysql的服务器实现了单机版本的集群。

本来以为这事到这就结束了,结果意外发现自己服务器上的MySQL被玩坏了……

本着修一修还能用的思想怒砸一个下午去修复,结果只发现了自己菜,没有发现mysql故障怎么解决……

所以就卸载重来吧……

卸载

mysql卸载主要分为三步:

卸载已安装的mysql程序;

删除相关的文件夹;

删除my.cnf文件。

卸载已安装的程序

# 查看已安装的mysql程序

shell> rpm -qa | grep -i mysql

mysql-errmsg-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64

mysql-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64

mysql-common-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64

mysql-server-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64

# 按照查询结果一一删除,可能会有顺序要求,因为部分文件存在依赖关系

shell> rpm -ev mysql-server-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64

shell> rpm -ev mysql-errmsg-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64

shell> rpm -ev mysql-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64

shell> rpm -ev mysql-common-8.0.21-1.module_el8.2.0+493+63b41e36.x86_64

# rpm -qa | grep -i mariadb(删除centos默认系统自带的)

shell> rpm -qa | grep -i mariadb

shell> rpm -ev mariadb-connector-c-config-3.0.7-1.el8.noarch

删除相关的文件夹

# 查看对应的MySQL目录

find / -name mysql

# 结果:

/var/lib/docker/volumes/wp_db_data/_data/mysql

/var/lib/docker/volumes/94f2988e2ff63103c8c14f2bd69df6a4579e16bc2e5fd364b366878cd1e2fdc3/_data/mysql

... ...

# 删除对应目录文件[和docker有关的不删,那是另外的东西]:

rm -rf /var/log/mysql

rm -rf /usr/share/selinux/packages/mysql

rm -rf /lanblue/conf/mysql

... ...

删除配置文件

# 最后删除配置文件

shell> rm -rf /etc/my.cnf

安装

这应该是我第三次在服务器上安装mysql,但是完全不记得之前怎么装的了,只记得简单【我明明觉得自己记过笔记的】。

网上找了一百个教程都没有看到特别喜欢的,尝试yum安装但是有点问题,最后还是在官网上下的包。

因为没有my.cnf,决定去官网说明文档里找一个。

等一等……

既然我都去官网了,为什么我不按照官网的教程来,明明学NDB集群的时候就是这样做的呀,果然还是吃了有经验的亏啊……

于是按照官网安装。

还是踩坑了,有配置需求的时候要看完官网教程,不要边看边学QAQ

下载

# 在某个目录下下载包

shell> wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz

# 解压

shell> tar Jxvf mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz

# 移动和重命名

# 这两步不是记得太清楚了,最后结果就是把安装目录改名为mysql8,并放在/usr/local目录下。

# 大家可以放在自己喜欢的目录下

shell> mv ./mysql-8.0.22-linux-glibc2.12-x86_64 /usr/local

shell> cd /usr/local

shell>mv ./mysql-8.0.22-linux-glibc2.12-x86_64 mysql8

授权和配置

# 创建用户和用户组,有就不用管

shell> groupadd mysql

shell> useradd -r -g mysql -s /bin/false mysql

# 转到安装目录下

shell> /usr/local/mysql8

shell> mkdir mysql-files

shell> chown mysql:mysql mysql-files

shell> chmod 750 mysql-files

# 可能是安全方面的想法

shell> bin/mysql_ssl_rsa_setup

# 可选的操作,我觉得可能是设置为开机启动

shell> cp support-files/mysql.server /etc/init.d/mysql.server

# 不推荐!如果安装在官方推荐的目录下使用这句话没有问题,如果是自定义的目录不要用这句话

# shell> bin/mysqld --initialize --user=mysql

# 之后会出现问题

# 初始化

# 我使用的是这个语句,主要在于配置了basedir【安装目录】和datadir【存放数据的地方,里面要空】

# 初始化最后一行会出现临时密码,要复制粘贴待会用。

# 使用--initialize-insecure会默认没有密码,但是后续也要修改,所以我只示范本命令行中的方法

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

... ...

2020-12-22T06:12:26.872936Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: &dj*3sCai3Fw

# 另一种方式 使用配置文件初始化

# 【在配置文件中设置目录】配置文件可以在网上找一找格式,需要自定义很多内容的小伙伴可以使用这种方式

# bin/mysqld --defaults-file=/path/to/your/config/my.cnf --initialize --user=mysql

# 启动服务

# 跳转到bin目录

shell> ./mysqld_safe --user=mysql &

[1] 26248

... ...

2020-12-22T06:16:18.543780Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql8/data

# 已经有启动的进程了,但是查看状态会报错。应该是我没有设置服务名,不管他

shell> service mysqld status

Redirecting to /bin/systemctl status mysqld.service

● mysqld.service

Loaded: not-found (Reason: Unit mysqld.service not found.)

Active: failed (Result: exit-code) since Tue 2020-12-22 09:46:34 CST; 4h 37min ago

Main PID: 28825 (code=exited, status=1/FAILURE)

# 尝试登陆一下

shell> mysql -u root -p

-bash: mysql: command not found

# 默认找的是usr/local/bin,所以要做个软链接

ln -s /usr/local/mysql8/bin/mysql /usr/local/bin/mysql

# 之后就成功啦~记得使用之前看到的密码

shell> mysql -uroot -p

Enter password:

# 修改密码

# 选择一个新密码来替换随机密码,否则无法执行任何操作

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Myp@a$w*rd';

# 创建新用户并授权

mysql> CREATE USER 'blue'@'%' IDENTIFIED BY 'p@ssWor$';

mysql> GRANT ALL ON *.* TO 'blue'@'%';

# 远程登陆如果提示 client does not support authentication protocol requested by server

mysql> ALTER USER 'blue'@'%' IDENTIFIED WITH mysql_native_password BY 'p@ssWor$';

# 远程登陆如果提示 authentication plugin 'sha256_password' cannot be loaded

# 修改加密规则

mysql> ALTER USER 'blue'@'%' IDENTIFIED BY 'p@ssWor$' PASSWORD EXPIRE NEVER;

# 更新一下用户的密码

mysql> ALTER USER 'blue'@'%' IDENTIFIED WITH mysql_native_password BY 'p@ssWor$';

# 刷新权限

mysql> FLUSH PRIVILEGES;

# 这句也要执行

mysql> ALTER USER 'blue'@'%' IDENTIFIED BY 'p@ssWor$';

好啦,可以用啦~超开心。

shell命令卸载mysql_centos8中的MySQL卸载和安装相关推荐

  1. brew安装mysql 卸载_Ubuntu环境下MySQL卸载安装配置远程访问三步曲

    卸载 查看所有依赖 dpkg --list|grep mysql 卸载 MySQL sudo apt-get remove mysql-* 清除残留数据,弹出界面选择 yes dpkg -l |gre ...

  2. 百度下mysql卸载_如何把Mysql卸载干净(亲测有效)

    如何完美的卸载掉mysql?按以下几个步骤去执行. 步骤一 确认你的mysql服务是关闭的状态,不然卸载不干净. 在我的电脑(计算机)-- 管理 – 服务和应用程序 – 服务,找到mysql 把状态关 ...

  3. [云原生 | ubuntu Docker卸载] ubuntu中docker彻底卸载

    ubuntu中docker彻底卸载 #删除某软件及其安装时自动安装的所有包sudo apt-get autoremove docker docker-ce docker-engine docker.i ...

  4. python调用shell命令-在Python中执行shell命令的6种方法,你都知道吗?

    原标题:在Python中执行shell命令的6种方法,你都知道吗? Python经常被称作"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使用其他语言编写的库.今天我们就讲解 ...

  5. Kubernetes通过一行shell命令给pod中的zk节点添加权限

    问题 一个需求:需要写一个shell脚本部署Zookeeper,并且在脚本里需要去对zk的 /节点进行digest权限配置. 尝试了以下命令: kubectl exec -ti podName -n ...

  6. Linux在文件第一行添加字符,使用shell命令给文件中每一行的前面、后面、指定列添加字符...

    shell给一个文件中的每一行开头插入字符的方法:awk '{print "X"$0}' fileName shell给一个文件中的每一行结尾插入字符的方法:awk '{print ...

  7. mac 怎样卸载mysql_如何卸载mac中的mysql?

    版权声明:本文为博主原创文章,未经博主允许不得转载. 首先这篇技术贴在写之前,说点题外话. 第一次接触 同时,深深的感觉到网络很多技术贴太水,很多问题并不能完全的讲解清楚,甚至有些答非所问.如有问题, ...

  8. 如何卸载linux中的docker,linux centos7 安装、卸载docker

    docker安装 1:查看系统版本 cat /etc/redhat-release CentOS Linux release 7.4.1708 (Core) 2:安装docker(yum方式) $ y ...

  9. linux vim 执行shell命令行,Linux中vim和shell

    在Linux系统中一切皆文件,配置服务其实就是在修改其配置文件的参数,而在日常文件中肯定少不了的就是编辑文档,这就离不开vim,而vim之所以能够得到广大厂商的青睐与用户的认可,原因在于vim编辑器中 ...

最新文章

  1. 马哥教育第二十四ftp协议、vsftpd的高级应用、rpc概念及nfs的基本应用、samba及其基本应用...
  2. NTU 课程笔记:CV6422 样本分布
  3. Android 用MediaRecorder录制视频太短崩的问题
  4. 数据结构中的树 --- 红黑树
  5. 苹果或推出不到两千元的iPhone!安卓手机不淡定了
  6. JsonHelper Json转xml,Json转DataSet,DataSet转Json
  7. jQuery checkbox全选问题
  8. 简单Java类和数据库操作及javafx的结合小项目(二)
  9. 深入浅出MySQL之优化
  10. 积分公式和常用方法总结
  11. ClientKey实现登录QQ空间,并设置背景音乐
  12. linux twiki 添加权限,Ubuntu上TWiki安装和使用心得
  13. 姿态估计1-07:FSA-Net(头部姿态估算)-源码无死角讲解(2)-网络框架整体结构分析
  14. 13.请编一个函数void fun(int tt[M][N],int pp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。
  15. ACE的CDR中的字节对齐问题
  16. SEO基础:Meta标签之Keywords、Description
  17. 联想小新Air14使用傲梅分区助手进行硬盘克隆出现的问题,克隆完显示RAW格式解决方案,win10家庭版硬盘BitLocker上锁解锁方法
  18. 当天是年,月的第几周。。。
  19. Liunx一些简单的小命令2
  20. 图解transformer | The Illustrated Transformer

热门文章

  1. Pycharm搜索文件名、符号名
  2. sshpass的使用方法
  3. html中用来标记关键字的标识,简单的HTML标识属性与识别
  4. vs2015编译android,VS2015 Update2 构建 Android 程序问题汇总
  5. js判断浏览器是否支持webGL
  6. java shape 空间操作类_设计三个类:几何形状类(Shape)、圆类(Circle)、矩形类(.,请编写 Java程序,设计一个“形状rdquo...
  7. 无缝衔接的人会遭报应吗_还为幼小衔接发愁吗?学会4招,孩子养成好习惯,与小学无缝对接...
  8. Jackson:数组json字符串转对象集合(List)的两种方式
  9. linux class device
  10. mysql允许用户远程连接_mysql允许用户远程连接