1 MYSQL的安装
在redhat 9的bash中,查找mysql相关的rpm相关包。
其实,我已经安装了mysql。不过,要想让mysql在redhat9上运行起来,还需要其他的rpm库包。
我们可以来看一下:
点击上面图片中的Details链接:
通过上图会发现:mysql的标准安装包有4个,额外的附加功能包有1个。总共需要5个rpm包,才能真正完整地安装起来。要是让我在实际的机器上来安装这些rpm包,又不给我安装光盘的话,我肯定会被rpm的依赖关系整的天昏地暗。如果真遇到这种情况,上面我已经介绍过两种解决方法:如果没联网,就用rpmdb工具解决:如果联网了,就用yum工具自动安装解决。
既然已经安装了,就可以查看它的运行状态,在bash中键入那几个常用的测试命令,结果如下:
2 MYSQL的用户配置
用户配置是服务器配置的前提,mysql当然也不例外。
Mysql默认安装时,有一个不带密码的root用户,要想更新root用户的密码,得通过root用户进入服务器内部,在内部更改其中的mysql数据库中的user表。更改方式是用sql语句来更改。更改语句如下:
#mysql –u root mysql
Mysql> update user set Password=‘*****’ where user=’root’;
以上的‘*****’代表新密码。我改过之后,就是进不去。后来到网上查找了解决方法,原来更新语句是这样的:update user set Password=PASSWORD(‘*****’) where user=’root’;在向数据库写密码时,还得用加密函数进行加密。
惨了,mysql进不去了。然后,又到google上搜了一下,解决方法如下:
1.用root或者运行mysqld的用户登录系统;
2.利用kill命令结束掉mysqld的进程;
3.使用--skip-grant-tables参数启动MySQL Server :
shell>mysqld_safe --skip-grant-tables &
4.为root@localhost设置新密码 :shell>mysqladmin -u root flush-privileges password "newpassword"
5.重启MySQL Server
使用上面这些方法,我最终还是将root用户的密码又重新设置为空。最终,我又重新进入了mysql的世界。
首先,用sql语句查看mysql的用户设置情况:
选择mysql这一系统数据库,结果如下图所示:
选择mysql数据库中的user表,查看当前系统中存在的用户,及用户的主机和密码信息。密码是会加密的。
如果想了解mysql数据库服务器的权限系统原理。可以通过查看mysql数据库服务器当中的mysql数据库来了解。选择mysql数据库,然后show tables;就可以看到如下图所示的这些表。这些表的相关注释,我已在图片中说明:
3 Mysql的备份与恢复
Mysql的备份基本有两大方式:用msqldump之类的工具来备份,直接拷贝数据库文件。
一、使用mysqldump工具备份数据库
Mysql的数据库文件存放于/var/lib/mysql目录下,结果如下图所示:
观察此图,可以发现一个有趣的现象。这些数据库目录的user和group都是mysql。在这里,我发誓我绝对没有手动地建立这些新用户。那只有两种可能:一、mysql是linux系统本身提供的默认用户。二、mysql服务器在安装的过程中,就自己建立了一个这样的新用户。
不管怎样,可以去/etc/passwd文件中查看一下mysql用户的一些详细信息:
因为mysql用户号(userid)仅为27,可以判定这是redhat9 linux系统的预留账户。
再继续查看mysql数据库目录内的真实情况:
通过上图可以发现,数据库内的每个表都涉及三个文件:xx.frm 、xx.myd、xx.myi。这三个文件是干嘛的呢。不知道。百度一下:frm、MYI、MYD 分别是 MYSQL数据库服务器中表的表结构(frame)\索引(index)\数据文件(data)。
接着干我们的正事,备份数据库。我们得需要一个测试数据库来练练手,所以我就新建了一个wuchaouser数据库,然后针对此数据库进行备份、删除和恢复操作。详细过程,见以下各图:
建立数据库:
先备份:
后删除:
查看删除结果:
恢复数据库需要使用source命令:
至于拷贝数据库文件的备份方法,我就不赘述了。