mysql中为用户设置密码的多种方法

来源:互联网 发布:少年班人物原型知乎 编辑:程序博客网 时间:2024/05/22 10:42
      当初次在机器上安装完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";

grant all on *.* to 'root'@'%' identified by 'engine';
flush privileges;

另外你也可以在shell环境下用mysqladmin程序来设置密码

mysqladmin -u root password "your password"
快点去试一下,没问题吧!

mysql如何设置密码

有很多方法:
1.用root 进入mysql后
mysql>set password =password('你的密码');
mysql>flush privileges;

2.使用GRANT语句
mysql>grant all on *.* to 'root'@'localhost' IDENTIFIED BY '你的密码'with grant option ; www.jb51.net
mysql>flush privileges;

3.进入mysql库修改user表
mysql>use mysql;
mysql>update user set password=password('你的密码') where user='root';

mysql>flush privileges;

###############

另外,如果你在修改mysql服务器的数据库mysql.user表的用户权限后,发现拥有管理员权限的root却无法访问数据库 mysql,这个时候你的用户权限表应该乱套了,你想修改回来,可以执行以下步骤:

(1)设置mysql的my.cnf文件:

停掉mysqld服务,改my.cnf,在[mysqld]节加一段skip-grant-tables,再启。就可以不用密码进去。然后再去改数据库mysql.user表的用户权限

(2)恢复配置文件,重启mysqld

改my.cnf,在[mysqld]节去掉skip-grant-tables,再启。

另外一个方法,如果你的帐户已经被授予*.*的增删改查权限,自己去改一下mysql库的user表的授权字段,剩下的就是等管理员刷新权限或者重启mysqld了。所以授权一定不要*.*


0 0
原创粉丝点击