ubuntu怎么彻底的卸载掉mysql并且重新安装

ubuntu怎么彻底的卸载掉mysql并且重新安装,第1张

因为以前有过安装、所以先解决如何完全卸载干净mysql、再进行安装。想看安装的步骤可以跳到下面。

使用的账户是root账户、如果是普通账户、可以在相应的命令前添加:sudo 来获取root执行权限。

2、相关命令简介:

2.1 apt-get

apt——Advancedpackage tool

高 级包装工具是Debian及其衍生发行版(如:ubuntu)的软件包管理器。APT可以自动下载,配置,安装二进制或者源代码格式的软 件包,因此简化了 Unix系统上管理软件的过程,apt-get命令一般需要root权限执行,所以一般跟着sudo命令。

在补充部分会补充此命令的详细使用方式。

2.2 dpkg

dpkg——Debian package manager

dpkg is a tool to install, build, removeand manage Debian packages.

在后面补充中会有详细点的介绍。

二:卸载

2.1 手动卸载

mysql的两个相关文件需要手动删除、一个是/var/lib/mysql、一个是/etc/mysql。当你删除之后再重新装、如果/var/lib/mysql文件没有删除、则会保留上一个数据库创建的实例、这个一般不是我们想要的、根据需要删除。

apt-get -y autoremove --purgemysql-server-5.5

apt-get -y remove mysql-server

apt-get -y autoremove mysql-server

apt-get -y remove mysql-common

数据都没有了,怎么重建表。

.frm 和.ibd可以用来批量恢复InnoDB的表。

创建已经丢失的表结构

先要安装 mysql-utilities。

// RedHatyum -y install mysql-server mysql-utilities// Debianapt install mysql-utilities

使用 mysqlfrm 从 .frm 文件里面找回建表语句。

// 分析一个 .frm 文件生成建表的语句mysqlfrm --diagnostic /var/lib/mysql/test/t1.frm// 分析一个目录下的全部.frm文件生成建表语句root@username:~# mysqlfrm --diagnostic /var/lib/mysql/my_db/bk/ >createtb.sqlroot@username:~# grep "^CREATE TABLE" createtb.sql |wc -l124

可以看到一共生成了 124 个建表语句。

有很多时候也可以从其它库里面生成建表语句,如同一个应用的其它数据库或不同的测试环境,采用下面的 mysqldump 生成建表语句:

mysqldump --no-data --compact my_db>createtb.sql

登录 MySQL 生成表。

mysql>create database my_dbmysql>use my_dbDatabase changedmysql>source createtb.sqlQuery OK, 0 rows affected (0.07 sec)......

导入旧的数据文件

将新建的没有包括数据的 .ibd 文件抛弃

root@username:/var/lib/mysql/my_db# ll *.ibd|wc12411167941root@username:/var/lib/mysql/my_db# mysql -e "show tables from my_db" \| grep -v  Tables_in_my_db  \| while read ado mysql -e "ALTER TABLE my_db.$a DISCARD TABLESPACE"doneroot@username:/var/lib/mysql/my_db# ll *.ibd|wcls: cannot access '*.ibd': No such file or directory000

可以看到所有的 .idb 文件都已经被抛弃了。然后把旧的有数据的 .ibd 文件拷贝到这个 my_db 目录下面,别忘了把属主改过来:chown mysql. *,再把这些数据文件 import 到数据库中。

root@username:/var/lib/mysql/my_db# mysql -e "show tables from my_db" \| grep -v  Tables_in_my_db  \| while read a\do mysql -e "ALTER TABLE my_db.$a import TABLESPACE"done

导入完成后检查表

使用 mysqlcheck 对数据库 my_db 下的所有表进行检查:

root@username:/var/lib/mysql/my_db# mysqlcheck -c my_dbmy_db.cdp_backup_point                             OK......

所有的表都导入成功。

正如它的字面意思(Debian System Matainence),Debian系统对MySQL维护用的,你可以理解为通过系统的某个“非常规”程序对Mysql进行备份恢复等行为时,改程序所使用的登录Mysql的账户。

——你应该可以理解吧?你手工维护的时候同样需要用某账户登入Mysql再 *** 作的——系统的程序也一样需要这么做,只是它通过这个账户免去了你手工 *** 作的“麻烦”,加深了系统复杂度,让你更加难以理解mysql和Linux的工作原理。

原则上Linux系统本身与MySQL无需任何直接或间接的接触,你大可以删除,维护时使用网上大家最常用的方法来维护(这类方法可以适用于安装在任何系统上的Mysql,而此账户所对应的“便捷”方法——正如他的名字一样,仅适用于Debian),没必要去了解它,它只是像一个“修建在已经以海上桥梁连接的两座海岛之间的第二座桥梁”。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6160887.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存