1、MySQL 数据库管理系统 root 用户忘记密码解决方案研究【摘要】结合高职院校学生的择业,以便于更好的与以后的工作衔接,选择 MySQL数据库作为教学平台,共同学习 SQL语言。在实际的教学过程中,经常遇到同学们忘记 root用户密码的问题,影响了同学们的实际操作,因此,经过查阅资料、实验最终得到了解决方案。 【关键词】root 密码 一、引言 MySQL 是一个小型的关系数据库管理系统,由于其具有开放源代码的特点、体积小、运行速度快的特点而被广泛使用,特别是 Internet上的中小型网站中。如雅虎、新浪、网易、百度等公司。 实际上一些大中型的软件公司也越来越青睐于这种开源的数据库,原因
2、就在于代码是开源的,正是因为开放源代码的特点,所以很多公司可以根据自己的一些特点和特性做一些增量开发,使其具有公司的特性和可扩展性。 结合高职院校学生的择业,以便于更好的与工作衔接,所以选择MySQL数据库作为教学平台,共同学习 SQL语言。 二、MySQL 数据库的特点 MySQL 是一个小型关系型数据库管理系统,MySQL 被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL作为网站数据库。 MySQL 的优点: 它使用的核心线程是完全多线程,支持多处理器。有多种列类型:1、
3、2、3、4、和 8字节长度自有符号/无符号整数、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、TIMESTAMP、YEAR、和 ENUM类型。 它通过一个高度优化的类库实现 SQL函数库并像他们能达到的一样快速,通常在查询初始化后不该有任何内存分配。没有内存漏洞。 全面支持 SQL的 GROUP BY和 ORDER BY子句,支持聚合函数(COUNT() 、COUNT(DISTINCT) 、AVG() 、STD() 、SUM() 、MAX()和MIN() ) 。你可以在同一查询中混来自不同数据库的表。 支持 ANSI SQL的 L
4、EFT 0UTER JOIN和 ODBC。 所有列都有缺省值。你可以用 INSERT插入一个表列的子集,那些没用明确给定值的列设置为他们的决省值。 MySQL 可以工作在不同的平台上。支持C、C+、Java、Perl、PHP、Python 和 TCL API。 实际上,在教学过程中,经常会遇到同学们忘记 root用户密码的问题,当然我们可以选择备份数据库,再重新安装 MySQL数据库管理系统,但是毕竟重装系统不是任何时候都能行得通的办法,因此,寻求一种在原系统的基础上解决忘记密码的问题是作为授课老师应该研究的。 三、MYSQL 数据库 root用户密码忘记解决方法 第一种解决方案: 在/ete
5、/f(windows 下面应该是在 mysql的的那个 bin文件夹下面,不同的系统所对应不同的目录) 。 在主配置文件内找到mysqld这个单词,然后再下面输入 skip-grant-tables,这句好像是进行跳过检测,然后保存退出,之后重新启动 mysql(/etc/init.d/mysqld restart) ,注意一定要重新启动 mysql服务。 当进去之后,先输入 use mysql; /切换到 mysql这个数据库。 然后输入命令 mysql update user set password=password(new password) where user=root。 因为在第
6、二部的时候我们在配置文件内加入了这句 skip-grant-tables ,所以在修改之后,要把这句给去掉否则你所有所作的是没有用的。 。然后重新启动 mysql。 这步之后就可以进行启动,当你在输入 mysql的时候是无法进去的。你要输入 mysql -u root -p 意思是用 root这个用户,需要密码。 第二种解决办法: 向 mysqld server 发送 kill命令关掉 mysqld server(不是 kill -9) ,存放进程 ID的文件通常在 MYSQL的数据库所在的目录中。 kill cat /mysql-da ta-directory/hostname.pid 你必
7、须是 UNIX的 root用户或者是你所运行的 SERVER上的同等用户,才能执行这个操作。 使用-skip-grant-tables 参数来启动 mysqld。 使用mysql -h hostname mysql命令登录到 mysqld server 用grant命令改变口令。也可以这样做:mysqladmin -h hostname -u user password new password。 (其实也可以用 use mysql; update user set password =password(yourpass) where user=root 来做到。) 载入权限表:mysqlad
8、min -h hostname flush-privileges,或者使用 SQL 命令FLUSH PRIVILEGES。 第三种解决方案: 重新在另一台电脑上安装相同版本的 MySQL。 删除忘记密码的电脑中 MySQL安装目录中datamysql 的全部内容(要先停止 MySQL服务) 。 Copy 新装的电脑上 MySQL安装目录中datamysql 的全部内容 to 刚刚删除的目录中。 启动 MySQL服务。 四、结束语 本文介绍了如何解决忘记 root用户密码的问题,在实际的教学过程中起着非常重要的作用,从而更好的为教学服务,提高教学效果。 参考文献: 1王珊,萨师煊.数据库系统概论M.北京:高等教育出版社,2000. 2高海茹.MySQL 网络数据库技术精粹M.北京:机械工业出版社,2002.