Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101157
  • 博文数量: 9
  • 博客积分: 335
  • 博客等级: 一等列兵
  • 技术积分: 175
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-06 17:13
文章分类
文章存档

2012年(6)

2011年(3)

分类: Mysql/postgreSQL

2011-09-07 11:43:41


    经常遇到需要修改MySql密码的情况,原因多种多样。这里以root用户为例,给出一个修改密码的终极方案。

1. 记得旧密码
    这种情况下修改密码最简单,直接使用如下命令即可(注:确保mysql服务器处于运行状态)
  1. mysqladmin -h localhost -u root -p password 'your new password'
    回车后,会要求你输入旧密码,如果旧密码正确,则新密码设置成功。
  
    上面的命令选项p后面有一个mysql函数pasword,该函数会将后面的新密码加密。在MySql5.1的版本上,加密后转化后的长度为41。

2. 忘记旧密码
    MySql的用户账号信息是保存在mysql数据库的user表中的,因此,如果能直接修改该表中的相应用户的密码值,就实现了密码的修改。

2.1 linux平台

2.1.1 安全检查
    确保服务器处于安全状态,即没人可以任意地连接MySql数据库。因为在重新设置MySql的root密码期间,数据库的访问处于无验证状态,任意用户都可以登录和修改数据库信息。一种较普遍的做法是封闭MySql对外的端口,并停止Apache及所有用户进程。当然,最安全的方式是断网,直接在服务器的终端上操作,但多数情况下,这是不现实的。

2.1.2 修改启动配置
  1. # vi /etc/mysql/my.cnf
2.1.3 在[mysqld]段中加入一行:skip-grant-tables
  1. ....
  2. [mysqld]
  3. user = mysql
  4. pid-file = /var/run/mysqld/mysqld.pid
  5. socket = /var/run/mysqld/mysqld.sock
  6. port = 3306
  7. basedir = /usr
  8. datadir = /var/lib/mysql
  9. tmpdir = /tmp
  10. language = /usr/share/mysql/english
  11. skip-external-locking
  12. skip-grant-tables
  13. ....
2.1.4 重启mysql
  1. # /etc/init.d/mysqld restart
2.1.5 登陆mysql并改密码
  1. # /usr/bin/mysql
  2. Welcome to the MySql monitor. Commands and with ; or \g...
  3. Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

  4. mysql> use mysql;
  5. Database changed

  6. mysql> UPDATE user SET Password = password('your new password') WHERE User = 'root'
  7. Query Ok, 0 rows affected(0.00 sec) Rows matched: 2 Changed:0 Warnings: 0

  8. mysql> flush privileges;
  9. Query Ok,0 rows affected

  10. mysql> quit
2.1.6 恢复启动配置
    参照2.1.2的操作,将该步添加的skip-grant-tables注释或删除

2.2 BSD平台
    BSD平台上,启动脚本路径与Linux不同(当然,Linux不同的发行版也略有差异)。并且没有my.cnf配置文件。具体做法如下:
  • 停止MySql: /usr/local/etc/rc.d/mysql-server.sh stop
  • 无验证启动:/usr/local/bin/safe_mysqld --user=mysql --datadir=/var/db/mysql --skip-grant-tables
  • 参考2.1.5的方法修改密码
2.3 Windows平台
  • 停止mysql服务
  • 参照2.1.2的方式修改${MYSQL_HOME}\bin下的my.ini文件
  • 参考2.1.5的方法修改密码
  • 恢复刚刚修改的my.ini文件

阅读(1682) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:Ruby的全局变量

给主人留下些什么吧!~~