方寸心间

一路走,十年不回头

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
MySQL用户密码管理
这是一个非常经典的Mysql管理问题

当初次在机器上安装完Mysql时,你可以匿名进行访问数据库或者以不带口令的root身份进入数据库.另外如果你是一个管理员,你还要进行一些用户的建立及授权,这又涉及到设置密码的问题.

下面我们就讨论一下如何设置密码:

首先我们应该知道Mysql数据库中的口令存储必须用password()函数加密它.因为在user表中是以加密形式存储口令,而不是作为纯文本.如果你没有加密,直接在数据库中执行以下语句:

use mysql
insert into user (host,user,password) values('%','user_name','your password');
flush privileges;

相信结果不会让你满意.因为服务器比较的是加密的值,所以服务器连接一定失败.
这里需要说明的是
flush privileges;这条命令起到了重新加载授权表.
你也可以在shell下直接用mysqladmin -u root reload或者mysqladmin -u root flush-privileges来实现重载授权表.

在Mysql环境下,你可以使用以下语句进行设置密码:

1.insert into user(host,user,password) values('%','user_name',password('your password');

2.set password for user_name = password('your password')
以上两种方法都必须进行重载授权表.

3.当然你也可以在创建一个用户时直接设置密码,grant语句将为你自动加密口令.
如 :grant all on *.* to user_name@'%' identified by 'your password';
另外你也可以在shell环境下用mysqladmin程序来设置密码
如: mysqladmin -u root password 'your password';

忘记mysql用户密码怎么办?破解本地的mysql用户名和密码?如何修改遗失的MySQL的ROOT用户密码
Windows:
1.用系统管理员登陆系统。
2.停止MySQL的服务。
3.进入命令窗口,然后进入MySQL的安装目录,比如我的安装目录是c:\mysql,进入C:\mysql\bin
4.跳过权限检查启动MySQL,
c:\mysql\bin>;mysqld-nt --skip-grant-tables
5.重新打开一个窗口,进入c:\mysql\bin目录,设置root的新密码
c:\mysql\bin>;mysqladmin -u root flush-privileges password "newpassword"
c:\mysql\bin>;mysqladmin -u root -p shutdown
将newpassword替换为你要用的root的密码,第二个命令会提示你输入新密码,重复第一个命令输入的密码。
6.停止MySQL Server,用正常模式启动Mysql
7.你可以用新的密码链接到Mysql了。

Unix&Linux:
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

如果忘记MySQL 的root 密码,可以用以下方法重新设置:
1. KILL掉系统里的MySQL进程;
2. 用以下命令启动MySQL,以不检查权限的方式启动;
mysqld_safe -skip-grant-tables &
3. 然后用空密码方式使用root用户登录 MySQL;
mysql -u root
4. 修改root用户的密码;
mysql> update mysql.user set password=PASSWORD('新密码') where User='root';
mysql> flush privileges;
mysql> quit
5. 重新启动MySQL,就可以使用新密码登录了。

修改MySQL用户密码三法
在MySQL中修改一个用户(比如叫\"hunte\")的密码,可以用如下3个办法:

  >>>
  #在控制台上输入
  bash$ mysql -u root mysql
  #用mysql客户程序
  mysql> Update user SET password=PASSWORD('new password') Where user='hunte';
  mysql> FLUSH PRIVILEGES;
  mysql> QUIT
  <<<

  >>>
  #在控制台上输入
  bash$ mysql -u root mysql
  mysql> SET PASSWORD FOR hunte=PASSWORD('new password');
  mysql> QUIT
  <<<

  >>>
  #直接在控制台上输入
  bash$ mysqladmin -u root 'old password' 'new password'
  <<<
posted on 2008-10-06 10:03  方寸心间  阅读(587)  评论(0编辑  收藏  举报