您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

Linux系统中Mysql 的安装备份与密码恢复

添加时间:2012-10-18 17:51:07  添加: 思海网络 

Mysql是一种精巧的,多用户和多线程的中小型SQL数据库系统,由一个服务器守护进程mysqld和很多不同的客户程序和库组成,随着Linux,Apache和PHP逐渐被人们所认可,
mysql也逐渐为人们所熟悉,构成了一个“Linux+Apache+MYSQL+PHP”(即常说的LAMP)构建电子商务网站的黄金组合。

Mysql不是开放源代码的产品,但在某些情况下可以自由使用。而且Mysql具备非常好的性能,甚至可以和目前的所有商用数据库系统媲美,mysql的最主要优点就是“简单,高效,稳定性高”,一下是它的几个具体技术特点:
1:Mysql可以运行在不同的平台上,如:Windows98/NT/2000/XP/Server2003和Linux以及Unix,并且在Unix/Linux环境下支持多线程的运行方式,因此可以获得较好的性能。
2:Mysql提供对多种数据库的支持,如:Oracle,Infomix,Sybase等,也提供对ODBC的支持。
3:可以使用多种语言,如:C,C++,Java,Perl,PHP等,利用Mysql提供的API进行开发。
4:Mysql提供非常完善的权限系统。

本文针对Mysql这个功能强大的数据库,介绍Mysql的安装,数据备份以及丢失密码时的密码恢复。如无特别说明,本文所测试的Linux系统为RedHat9.0。

Mysql的安装
Redhat 9的第2张光盘提供了Mysql的RPM包,安装非常方便。这RPM包有:mysql-3.23.54a-11.i386.rpm
mysql-server-3.23.54a-11.i386.rpm
mysql-devel-3.23.54a-11.i386.rpm

在安装时,可以使用该光盘进行安装,也可以从网上下载最新的RPM包,然后再进行安装。

以下以RPM包的安装为例介绍Mysql的安装过程,若用户在安装RedHat时已经安装了Mysql,则可以跳过下面的安装步骤。
我们可以用rpm –qa |grep mysql命令来探测Linux系统是否安装了Mysql。



图一:检测Linux中是否安装mysql
若系统没有安装,则将第2张光盘中的
perl-CGI-2.81-88.i386.rpm
perl-DBI-1.32-5.i386.rpm
perl-DBD-Mysql-2.1021-3.i386.rpm
mysql-3.23.54a-11.i386.rpm
mysql-server-3.23.54a-11.i386.rpm

为什么要安装Perl的rpm包呢?这是因为在RedHat中,Mysql需要Perl语言的支持才能正常运行,因此在安装mysql前需要先安装Perl语言及其相关包。

我们按照下面的安装顺序来安装上述的5个rpm包。
#rpm –ivh perl-CGI-2.81-88.i386.rpm
#rpm –ivh perl-DBI-1.32-5.i386.rpm
#rpm –ivh mysql-3.23.54a-11.i386.rpm perl-DBD-Mysql-2.1021-3.i386.rpm
#rpm –ivh mysql-server-3.23.54a-11.i386.rpm



图二:Linux下mysql的安装

现在mysql已经安装完毕,我们可以用命令来启动Mysql并检验其是否被启动。
我们可以用三种方法来启动Mysql:
方法一:使用service命令来启动Mysql
#service mysql start
方法二:使用mysqld脚本来启动Mysql:
#/etc/init.d/mys qld start
方法三:使用safe_mysqld实用程序启动Mysql服务,此方法可以使用相关参数
#safe_mysqld& //使用&表示将safe_mysqld放在后台执行。
这里我们使用方法二来启动Mysql

我们可以使用命令service mysqld status来检测mysql是否已经启动,如图四所示,其中返回信息“pid 3295”中的“3295”是mysqld运行的进程号,这个进程号不是固定不变的,而是根据不同系统运行的进程数量而各不相同。

Mysql已经安装并启动,我们可以用Mysql里的命令来操作我们的Mysql数据库。
我们可以用mysql –u root –p 来访问数据库,系统会提示让我们输入密码,当mysql安装时,默认root帐户的密码为空,所以我们直接敲“enter”就可以进入到我们数据库内部。我们还可以用 show databases;命令来查看系统中现存的数据库。见图五,我们可以看到系统中默认自带了mysql和test这两个数据库。

我们如果想改变mysql的密码,可以用mysqladmin命令,命令格式为
mysqladmin -u root -p password 密码,这里的“密码”为我们欲新设的密码。如下图所示,这里我们将root的密码设置为“public” ,系统会提示我们输入旧密码(若是mysql刚安装,则默认密码为空)。

图三:改变mysql的密码
Mysql的命令还有很多,这里我们不可能一一介绍,感兴趣的读者可以参考Mysql的命令手册。
Mysql的备份
我们的数据库需要经常备份,Mysql数据库的常用备份方法是使用使用实用程序mysqldump, 其命令格式如下:
# mysqldump [options] database [tables]
其参数的含义为:
options:代表mysqldump的选项,通过mysqldump –help可以查到。
database: 代表将要备份的数据库
tables: 代表将要备份的表,如果不指定任何表,则备份整个数据库。
我们使用mysqldump备份了mysql自带的mysql库,并且用
ll命令来查看备份文件。

我们再来看看备份后的恢复,如图九,图十所示,我们新创建一个数据库bak,然后把我们刚才备份的mysql.bak文件导入到这个数据库。


图四:创建一个bak数据库

图五:导入mysql.bak到bak数据库
Mysql的密码恢复
Mysql隔一段时间不访问,也许你会忘记访问密码,这时该怎么办,重装mysql吗?这个代价也太大了,我们这里介绍两种恢复密码的方法。
方法一:因为Mysql密码存储于数据库mysql中的user表中,所以我们只要用已知密码的user表拷贝过来覆盖就行了。
Linux下 在/var/lib/mysql/mysql/目录下有三个user表相关文件user.frm、user.MYD、user.MYI。它们分别表示:
user.frm //user表样式文件
   user.MYD //user表数据文件
   user.MYI //user表索引文件
为保险起见,我们先将这三个user表相关文件备份,如图十所示,

图十:备份user表三个相关文件
然后我们将知道密码的mysql库中user表的三个文件拷贝过来,这时我们可以用ls看到六个user表文件。

这时我们只要重启mysql服务就可以用已知的密码来访问Mysql数据库了。
重启的命令为:service mysql restart 或
/etc/init.d/mysql restart

现在我们可以用已知密码的来访问Mysql数据库了。
方法二:
方法一是在已知另外一个Mysql数据库密码的的前提下进行密码恢复的,如果没有这样的一个已知密码的Mysql数据库,我们又该如何恢复呢?我们使用在Mysql中文参考手册上介绍的一种方法,这种方法分几个步骤:
1:向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),存放进程ID的文件通常在MYSQL的数据库所在的目录中。
  killall -TERM mysqld //你必须是UNIX的root用户或者是你所运行的
SERVER上的同等用户,才能执行这个操作。
2:使用`--skip-grant-tables' 参数来启动 mysqld。 (LINUX下/usr/bin/safe_mysqld --skip-grant-tables , windows下c:\mysql\bin\mysqld --skip-grant-tables) 如下图所示;
script:window.open(this.src); src="http://www.pushad.com/XrssFile/2006-6/22/2006622202022778.jpg" onload="return imgzoom(this,550)" border=0>
图十三:步骤1和步骤2的运行结果
3:然后就可以无密码登录到mysqld server ,此时Mysql的密码和刚安装时一样,都是为空。现在我们可以使用图六的方法用mysqladmin来改变mysql的密码了。
4:载入权限表,可以使用mysqladmin flush-privileges来刷新权限表。

图十四:使用mysqladmin载入权限表
5:使用新密码登陆。

Mysql是一个功能强大的数据库,需要在实践中多练习才能熟练掌握,本文介绍Mysql的安装以及最基本的访问Mysql的命令以及修改密码命令,最后就Mysql密码丢失问题介绍了两种恢复密码的方法。希望对大家有所帮助。


参考文献:
1:《MySQL数据库和备份与恢复》 http://www.yesky.com/257/1817257_1.shtml

2:《MySQL密码恢复笔记》
http://www.chinaitlab.com/www/news/article_show.asp?id=30494
3:《Red Hat Linx 9 网络服务》 SmarTraining工作室编著 机械工业出版社

关键字:Mysql、mysqladmin、网络服务

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站