‘壹’ mysql使用自带md5加密方式
不是md5吧,mysql是用password函数去加密的,mysql自带有md5()加密函数的
‘贰’ 在MySQL数据库中如何为用户设置密码
假如你是一个管理员,
你还要进行一些用户的建立及授权,这又涉及到设置密码的问题.下面我们就讨论一下如何设置密码:
首先我们应该知道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
mailto:user_name@
identified
by
"your
password";另外大家也可以在shell环境下用mysqladmin程序来设置密码。
‘叁’ 如何在mysql数据库中加入加密算法,使得数据库能够对数据库中的数据进行加密。
数据库一般不会有这种加密处理.数据库主要职责是查询和存储数据
数据加密一般都是通过外围加密服务处理过后再存到数据库,职责要区分开,然后再考虑怎么做
‘肆’ MYSQL数据库密码字段临时加密问题
你是指mysql用户密码还是数据库表里用户资料的密码?
mysql用户密码本身就加密过的,数据库表里的用户密码加密还得通过应用程序来加密和解决,算法完全可以由你自己来写。
‘伍’ 关于Mysql encode加密函数的问题
需要保存加密结果的字段为BLOB类型;
如下:
CREATE TABLE `tet` (
`title` blob,
`id` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
INSERT INTO tet(title) VALUES(ENCODE('数对密码字段进行','abc'));
SELECT * FROM tet;
SELECT DECODE(title,'abc') from tet;
本人在linux上运行结果正常。仅供参考
‘陆’ MySQL数据库下如何为用户设置密码
当初次在机器上安装完Mysql时,你可以匿名进行访问数据库或者以不带口令的root身份进入数据库.另外如果你是一个管理员,你还要进行一些用户的建立及授权,这又涉及到设置密码的问题.下面我们就讨论一下如何设置密码:首先我们应该知道Mysql数据库中的口令存储必须用password()函数加密它.因为在user表中是以加密形式存储口令,而不是作为纯文本.如果你没有加密,直接在数据库中执行以下语句:use mysqlinsert 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后,系统提示的方法。使用mysqladmin来完成。shell> mysqladmin -u root password "newpwd"
shell> mysqladmin -u root -h host_name password "newpwd"password后面的双引号不是必须的,不过如果密码包含空格或者一些特殊的符号,需要用引号。方法二:利用mysql里面的SET PASSWORD命令来完成,注意必须使用PASSWORD()函数来加密设置的这个newpwd,否则直接='newpwd'不会生效。不过如果使用方法一用mysqladmin password设置密码或者用GRANT来设置,就不用使用PASSWORD()函数,因为它们已经自动调用了该函数。shell> mysql -u root
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
mysql> SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');
方法三:直接通过UPDATE user表来设置密码shell> mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('newpwd')
-> WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
如果忘记mysql的root密码可以采取下面的步骤重新设置
1。kill掉所有mysql的进程
2。使用--skip-grant-tables的参数启动mysql
shell> mysqld_safe --skip-grant-tables &
3。设置新的密码,同样两种方式可以选择
方法一
shell> mysqladmin -u root flush-privileges password "newpwd"
方法二
mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd')
-> WHERE User='root';
mysql> FLUSH PRIVILEGES;
4。停止mysql server,用正常的模式启动
5。OK,可以使用新设置的密码了
‘捌’ mysql 8重置密码
命令行都要以管理员运行
1:net stop mysql 停止mysql服务
2:mysqld --console --skip-grant-tables --shared-memory 启动MySQL服务的时候跳过权限表认证
3:由于上面的命令行被mysql的服务给占用,我们得重新开启一个新的命令行
4:在新开的命令行中执行mysql
5:update user set authentication_string = '' where user='root' ; 将root用户的密码清空
6:quit 退出,然后在之前的命令行将我们开启的mysql服务停止掉(Ctrl+C或者关闭命令行),然后执行net start mysql 重新启动mysql服务
7:在我们之后开启的命令行中输入mysql -uroot -p 然后按enter键,输入密码继续按enter键(这里密码已经被清空),
8:ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; 修改密码
9:退出后,使用新密码登录
注意的地方,网上有些给的是使用update命令在第五步直接修改密码为我们重置的密码,然后使用flush privileges;命令刷新权限再退出,重启mysql服务,然后使用我们重置的密码重新登陆。然而你会发现登录会提示密码不正确,
下面是使用update命令将密码修改为root
登录报错,说明使用update直接修改密码是不可以的。我们也可以从上面看到update保存的密码是明文
使用alter命令修改后的密码是加密的
update 方法保存的为明文是由于没有使用password()方法,而password()方法在mysql5.7.6版本后已经废弃了,所以必须alter命令去修改密码了。
如果在第5步直接使用alter命令去修改密码也是不可以的,会报错
说是在免鉴权的情况下不支持这个操作
所以我们必须先清空密码,然后再使用alter命令修改密码
ps:mysql5.7.6版本后 废弃user表中 password字段 和 password()方法,所以旧方法重置密码对mysql8.0版本是行不通的,共勉
希望能帮助你,还请及时采纳谢谢
‘玖’ mysql 数据库的 登录密码的 加密方式是什么
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位。