使用的账户是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),没必要去了解它,它只是像一个“修建在已经以海上桥梁连接的两座海岛之间的第二座桥梁”。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)