mysql数据库里面的数据中的密码加密了,怎么解密
mysql -uroot -p 输入密码回车后,出现如下图错误。这时候需要我们破解密码。
service mysqld stop //先停止mysql服务。
然后打开mysql配置文件/etc/my.cnf.在【mysqld】下面添加一行代码:skip-grant-tables。这行代码意思就是跳过跳过授权表,即是可以跳过密码验证直接进入数据库。
service mysqld restart //重启mysql数据库。假如不重启的话,不会生效。
mysql -uroot -p //此时直接回车,既可以进入数据库。
出现mysql>就说明你已经进入到mysql数据库里了。
进数据库后,
use mysql //选择mysql这个库,因为mysql的root密码存放在这个数据库里。
show tables //查看下mysql库里有哪些表,我们需要操作的用户名密码都在user表里。
desc user //查看下user表有哪些字段
更改root密码。
update user set password=password('123456') where user="root"; //用户选root,可以随便更改成任意密码,我这里设置的123456,password()是mysql密码加密的一个函数。
flush privileges; //刷新下密码,使更改的生效。
exit //退出数据库。
退出数据库,重新登录
mysql -uroot -p //回车输入刚刚更改的密码,就能进去了。
然后再次进入配置文件vi /etc/my.cnf 把skip-grant-tables去掉。
怎么破解mysql密码
方法一使用phpmyadmin,这是最简单的了,修改mysql库的user表,不过别忘了使用PASSWORD函数。
方法二使用mysqladmin,这是前面声明的一个特例。mysqladmin -u root -p password mypasswd输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
把命令里的root改为你的用户名,你就可以改你自己的密码了。当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,那么这种方法就是无效的,而且mysqladmin无法把密码清空。
下面的方法都在mysql提示符下使用,且必须有mysql的root权限:方法三mysql> Insert INTO mysql.user (Host,User,Password)VALUES('%','jeffrey',PASSWORD('biscuit'))mysql> FLUSH PRIVILEGES确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。在《mysql中文参考手册》里有这个例子,所以我也就写出来了。
注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。方法四和方法三一样,只是使用了REPLACE语句mysql> REPLACE INTO mysql.user (Host,User,Password)VALUES('%','jeffrey',PASSWORD('biscuit'))mysql> FLUSH PRIVILEGES方法五使用SET PASSWORD语句,mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit')拟也必须使用PASSWORD()函数,但是不需要使用FLUSH PRIVILEGES。
方法六使用GRANT 。 IDENTIFIED BY语句mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit'这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。
注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。MySQL 忘记口令的解决办法如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。
启动 MySQL :bin/safe_mysqld --skip-grant-table就可以不需要密码就进入 MySQL 了。然后就是>use mysql>update user set password=password("new_pass") where user="root">flush privilege重新杀 MySQL ,用正常方法启动 MySQL 。
mysql密码清空Windows:1.用系统管理员登陆系统。2.停止MySQL的服务。
3.进入命令窗口,然后进入MySQL的安装目录,比如我的安装目录是c:\mysql,进入C:\mysql\bi4.跳过权限检查启动MySQL,c:\mysql\bin>mysqld-nt --skip-grant-table5.重新打开一个窗口,进入c:\mysql\bin目录,设置root的新密码c:\mysql\bin>mysqladmin -u root flush-privileges password "newpassword"c:\mysql\bin>mysqladmin -u root -p shutdow将newpassword替换为你要用的root的密码,第二个命令会提示你输入新密码,重复第一个命令输入的密码。6.停止MySQL Server,用正常模式启动Mysql7.你可以用新的密码链接到Mysql了。
Unix&Linux:1.用root或者运行mysqld的用户登录系统;2.利用kill命令结束掉mysqld的进程;3.使用--skip-grant-tables参数启动MySQL Serverhell>mysqld_safe --skip-grant-table4.为root@localhost设置新密码hell>mysqladmin -u root flush-privileges password "newpassword"5.重启MySQL Servermysql修改密码mysql修改,可在mysql命令行执行如下:mysql -u root mysqlmysql> Update user SET password=PASSWORD("new password") Where user='name'mysql> FLUSH PRIVILEGESmysql> QUIT教你如何将MySQL数据库的密码恢复因为MySQL密码存储于数据库mysql中的user表中,所以只需要将我windows 2003下的MySQL中的user表拷贝过来覆盖掉就行了。在c:\mysql\data\mysql\(linux 则一般在/var/lib/mysql/mysql/)目录下有三个user表相关文件user.frm、user.MYD、user.MYIuser.frm //user表样式文件user.MYD //user表数据文件user.MYI //user表索引文件为保险起见,三个都拷贝过来,不过其实如果之前在要恢复的那个MySQL上没有更改过表结构的话,只要拷贝user.MYD就行了然后#. /etc/rc.d/init.d/mysql sto#. /etc/rc.d/init.d/mysql start#mysql -u root -p XXXXXX好了,可以用windows 2003下mysql密码登陆了mysql>use mysqlmysql>update user set Password=PASSWORD('xxxxxx') where User='root'这时候会出错,提示user表只有读权限我分析了一下原因,只这样的,因为user.*文件的权限分配是windows 2003下的,在windows 2003下我ls -l一看权限是666在linux下我一看,拷过来后权限变成了600(其实正常情况下600就行了,只不过这里的文件属主不是mysql,拷过来后的属主变为了root,所以会出现权限不够,这时候如果你改成权限666则可以了,当然这样不好,没有解决问题的实质),在/var/lib/mysql/mysql/下ls -l看了一下再重起一下MYSQL重新连接mysql>use mysqlmysql>update user set Password=PASSWORD('xxxxxx') where User='root'mysql>FLUSH PRIVILEGES有一点值得注意:如果你windows 下mysql如果是默认配置的话,注意要还要执行mysql>delete from user where User=''mysql>delete from user where Host='%'mysql>FLUSH PRIVILEGES好了,到这里恢复密码过程就完成了这个方法么就是有点局限性,你必须。
linux下的mysql密码破解
mysql教程:几种破解MySQL数据库root密码的方法[日期:2009-02-18] 来源: 作者: 几种破解mysql root密码的几种方法:方法一使用phpmyadmin,这是最简单的了,修改mysql库的user表,不过别忘了使用PASSWORD函数。
方法二使用mysqladmin,这是前面声明的一个特例。mysqladmin -u root -p password mypasswd输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
把命令里的root改为你的用户名,你就可以改你自己的密码了。当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,那么这种方法就是无效的,而且mysqladmin无法把密码清空。
下面的方法都在mysql提示符下使用,且必须有mysql的root权限:方法三mysql> Insert INTO mysql.user (Host,User,Password)VALUES('%','jeffrey',PASSWORD('biscuit'));mysql> FLUSH PRIVILEGES确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。在《mysql中文参考手册》里有这个例子:注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。
方法四和方法三一样,只是使用了REPLACE语句mysql> REPLACE INTO mysql.user (Host,User,Password)VALUES('%','jeffrey',PASSWORD('biscuit'));mysql> FLUSH PRIVILEGES方法五使用SET PASSWORD语句,mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD('biscuit');拟也必须使用PASSWORD()函数,但是不需要使用FLUSH PRIVILEGES。方法六使用GRANT 。
IDENTIFIED BY语句mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY 'biscuit';这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。
MySQL 忘记口令的解决办法如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。启动 MySQL :bin/safe_mysqld --skip-grant-tables &就可以不需要密码就进入 MySQL 了。
然后就是>use mysql>update user set password=password("new_pass") where user="root";>flush privileges;重新杀 MySQL ,用正常方法启动 MySQL 。mysql密码清空Windows:1.用系统管理员登陆系统。
2.停止MySQL的服务。3.进入命令窗口,然后进入MySQL的安装目录,比如我的安装目录是c:\mysql,进入C:\mysql\bin4.跳过权限检查启动MySQL,c:\mysql\bin>mysqld-nt --skip-grant-tables5.重新打开一个窗口,进入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,用正常模式启动Mysql7.你可以用新的密码链接到Mysql了。Unix&Linux:1.用root或者运行mysqld的用户登录系统;2.利用kill命令结束掉mysqld的进程;3.使用--skip-grant-tables参数启动MySQL Servershell>mysqld_safe --skip-grant-tables &4.为root@localhost设置新密码shell>mysqladmin -u root flush-privileges password "newpassword"5.重启MySQL Servermysql修改密码mysql修改,可在mysql命令行执行如下:mysql -u root mysqlmysql> Update user SET password=PASSWORD("new password") Where user='name';mysql> FLUSH PRIVILEGES;mysql> QUIT教你如何将MySQL数据库的密码恢复因为MySQL密码存储于数据库mysql中的user表中,所以只需要将我windows 2003下的 MySQL中的user表拷贝过来覆盖掉就行了。
在c:\mysql\data\mysql\(linux 则一般在/var/lib/mysql/mysql/)目录下有三个user表相关文件user.frm、user.MYD、user.MYIuser.frm //user表样式文件user.MYD //user表数据文件user.MYI //user表索引文件为保险起见,三个都拷贝过来,不过其实如果之前在要恢复的那个MySQL上没有更改过表结构的话,只要拷贝user.MYD就行了然后#. /etc/rc.d/init.d/mysql stop#. /etc/rc.d/init.d/mysql start#mysql -u root -p XXXXXX好了,可以用windows 2003下mysql密码登陆了mysql>use mysqlmysql>update user set Password=PASSWORD('xxxxxx') where User='root';这时候会出错,提示user表只有读权限我分析了一下原因,只这样的,因为user.*文件的权限分配是windows 2003下的,在 windows 2003下我ls -l一看权限是666在linux下我一看,拷过来后权限变成了600(其实正常情况下600就行了,只不过这里的文件属主不是mysql,拷过来后的属主变为了 root,所以会出现权限不够,这时候如果你改成权限666则可以了,当然这样不好,没有解决问题的实质),在/var/lib/mysql/mysql /下ls -l看了一下再#chown -R mysql:mysql user.*#chmod 600 user.*//OK,DONE重起一下MYSQL重新连接mysql>use mysqlmysql>update user set Password=PASSWORD('xxxxxx') where User='root';mysql>FLUSH PRIVILEGES;有一点值得注意:如果你windows 下mysql如果是默认配置的话,注意。
如何利用MySQL数据库自带加密函数进行加密
首先,先介绍下加密函数,PASSWORD(string)函数可以对字符串string进行加密,代码如下:
SELECT PASSWORD('you');
如下图所示:
执行第一步的SQL语句,查询结果是一串字符串,并且PASSWORD(string)函数加密是不可逆转,
如下图所示:
另外一个加密函数MD5(string),主要针对普通的数据进行加密,代码如下:
SELECT MD5('hai');
如下图所示:
最后一个加密函数ENCODE(string,pass),可以使用字符串pass来加密字符串string。首先要创建一个数据库表t_pass_info,代码如下:
CREATE TABLE t_pass_info(
id int(10),
pass_info blob
);
如下图所示:
然后,向这个数据库表插入一条数据,代码如下:
INSERT INTO t_pass_info(id,pass_info) VALUES
(1,ENCODE('dong','bb'));
如下图所示:
6
查看插入数据库表t_pass_info记录,代码如下:
SELECT * FROM
t_pass_info;
如下图所示:
7
MySQL自带还有一个解密函数DECODE(str,pass_str),可以使用字符串pass_str来为str解密,代码如下:
SELECT DECODE(ENCODE('dong','aa'),'aa');
如下图所示:
mysql数据库中数据表存放的密码,如何才能看到密码的明文
这个是无法在mysql中看到明文的,有些密码加密是可逆的,有不可逆的,可逆的话,要看是什么算法加密,然后解密。在mysql中有:password与md5函数
password用于修改mysql的用户密码,如果是应用与web程序建议使用md5()函数,
password函数旧版16位,新版41位,可用select length(password('123456'))察看。
password函数加密不可逆,如果和数据库里加密后内容比较时可以采用password(pwd)==字段内容的方式;
md5函数加密后32位,此加密算法不可逆
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位。
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位。
Navicat MySQL 如何连接未知密码的mysql数据库?不要告诉我暴力破
使用phpmyadmin,这是最简单的了,修改mysql库的user表,
不过别忘了使用PASSWORD函数。
方法2
使用mysqladmin,这是前面声明的一个特例。
以下为引用的内容:
mysqladmin -u root -p password mypasswd
输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
把命令里的root改为你的用户名,你就可以改你自己的密码了。
当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,
那么这种方法就是无效的。 而且mysqladmin无法把密码清空。
下面的方法都在mysql提示符下使用,且必须有mysql的root权限:
方法3
以下为引用的内容:
mysql> INSERT INTO mysql.user (Host,User,Password)
VALUES(\%,jeffrey,PASSWORD
mysql> FLUSH PRIVILEGES
确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。在《mysql中文参考手册》里有这个例子,所以我也就写出来了。 注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。
方法4
和方法三一样,只是使用了REPLACE语句
以下为引用的内容:
mysql> REPLACE INTO mysql.user (Host,User,Password)
VALUES(\%,jeffrey,PASSWORD
mysql> FLUSH PRIVILEGES
方法5
使用SET PASSWORD语句,
mysql> SET PASSWORD FOR jeffrey@"%" = PASSWORD
你也必须使用PASSWORD()函数,
但是不需要使用FLUSH PRIVILEGES。
方法6
使用GRANT 。 IDENTIFIED BY语句
mysql> GRANT USAGE ON *.* TO jeffrey@"%" IDENTIFIED BY
这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。
注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。
在这里就为大家总结出这六种方法,如果大家有更多更好的方法,欢迎拿出来与我们大家一起分享。
转载请注明出处51数据库 » mysqlpassword函数解密
大波浪_