MySQL数据库的认证密码有两种方式,
MySQL 4.1版本之前是MySQL323加密,MySQL 4.1和之后的版本都是MySQLSHA1加密,
MySQL数据库中自带Old_Password(str)和Password(str)函数,它们均可以在MySQL数据库里进行查询,前者是MySQL323加密,后者是MySQLSHA1方式加密。
(1)以MySQL323方式加密
select old_password('111111')
(2)以MySQLSHA1方式加密
select password('111111')
MYSQL323加密中生成的是16位字符串,而在MySQLSHA1中生存的是41位字符串,其中*是不加入实际的密码运算中,通过观察在很多用户中都携带了"*",在实际破解过程中去掉"*",也就是说MySQLSHA1加密的密码的实际位数是40位。
当初次在机器上安装完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"一、密码的修改:使用mysqladmin命令1、例如你的 root用户现在没有密码,你希望的密码修改为abc,那么命令是:mysqladmin -u root password abc
2、如果你的root现在有密码了,那么修改密码为abc的命令是:mysqladmin -u root -p password youyou
注意,命令回车后会问你旧密码,输入旧密码之后命令完成,密码修改成功。
二、密码的消除
1、以root登录:mysql -u root -p
2、mysql>use mysql
3、mysql>update user set password='' where user='root'
重新启动下mysql服务就可以啦。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)