1.停止正在运行的MySQL进程
killall -TERM mysqld
2.以安全模式启动MySQL
mysqld_safe –skip-grant-tables &
3.登陆MYSQL,完成上述两步以后就可以不用密码进入MySQL了
mysql -u root
4.更改密码, 到此我们就可以在mysql客户端提示符下直接修改用户信息表了
use mysql
select host, user, password from user
update user set password=password(“新密码”) where user=”root”
flush privileges
第一句:打开系统数据库“mysql”
第二句:查看一下当前用户信息表有哪 些用户都可以从哪个主机访问数据
第三句:直接修改用户密码,第四句是更新用户权限使其立即生效
5.退出控制台,启动服务
killall -TERM mysqld
service mysqld start
通过上述方法我成功重置了MYSQL的root密码
好久没用MySQL今天重新使用时候发现root密码忘记了,参考了网上的一些解决方案成功修改了密码,特把重置密码可行的解决方案记录在这里,供参考。首先需要直到自己的mysql安装路径,这里是 /usr/local/mysql 。
当忘记密码,或者想要强行重置 MySQL 密码的时候,可以像下面这样:
1.停止 MySQL 服务
sudo /usr/local/mysql/support-files/mysql.server stop
//当停止失败 见下边 如何用mac 活动指示器停止服务。
1
2
1
2
也可以在系统设置中停用mysql服务。
2.进入安全模式
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
1
1
说是安全模式,其实是超级危险模式!如果你是在本地修改,那没问题;如果是在服务器上,那你得保证这个时候没有任何人登录到系统。请确保你修改时没有人可以连接到数据库,最好的做法是断掉网络连接,在本地修改完成后再重新启用该服务器。因为一旦进入了安全模式,任何人都可以使用任何密码通过 root 用户登录入到 MySQL ,可以执行任何想执行的 *** 作。
这也是为什么,当我们密码忘记了的时候,我们可以这样来修改密码。凡事有利有弊,你可以用这种方式来做好事;而同样,可以用来做坏事。
3.新打开一个终端,进入 MySQL
mysql -u root -p
1
1
然后输入任意密码进入 MySQL 了。
4.修改密码
进入了之后先不要急着使用 update 命令修改密码,先看看表中的字段名。不同版本密码的字段名可能不一样。
MySQL 的用户信息是存在 mysql.user 这个表里面的。于是可以先选择 mysql 这个数据库,再看数据库中 user 表中的字段名称。
use mysql//切换数据库
describe user//查看user表的字段
1
2
1
2
然后确定密码字段的名称,一般可能是 Password。然而在 OS X 的 MySQL 5.7 这个版本中,密码字段名称是 authentication_string 。记住这个字段名。
然后修改密码:
UPDATE mysql.user SET authentication_string=PASSWORD('123456') where User='root'//将root用户密码改成 123456
1
1
5.刷新权限,使配置生效
flush privileges
1
1
6.重新启动 MySQL
sudo /usr/local/mysql/support-files/mysql.server restart
1
1
当启动失败的话,可以直接用mac工具活动监视器:
搜索mysql 进程名称列表有mysql的话,直接双击,点击退出即可。
修改完之后记得刷新权限 和重新启动mysql服务才行。
7.再次设置密码
利用safe模式重新设置密码后,用设置好的密码进入mysql后,可能会遇到这样一段报错
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
1
1
这时需要再次设置一下密码
SET PASSWORD = PASSWORD('123456')
1
1
完成了这一步之后密码就真的修改成功了。
一.MySQL密码的恢复方法之一如果忘记了MySQL的root密码,可以用以下方法重新设置:1.切换到root下suroot2.KILL掉系统里的MySQL进程;killall-TERMmysqld3.用以下命令启动MySQL,以不检查权限的方式启动;safe_mysqld--skip-grant-tables&4.然后用空密码方式使用root用户登录MySQL;mysql-uroot5.修改root用户的密码;mysql>updatemysql.usersetpassword=PASSWORD('123456')whereUser='root'mysql>flushprivilegesmysql>quit重新启动MySQL,就可以使用新密码登录了。二.MySQL密码的恢复方法二有可能你的系统没有safe_mysqld程序(ubuntu *** 作系统,apt-get安装的mysql),下面方法可以恢复1.切换到root下suroot2.停止mysqld;/etc/init.d/mysqlstop3.用以下命令启动MySQL,以不检查权限的方式启动;mysqld--skip-grant-tables&4.然后用空密码方式使用root用户登录MySQL;mysql-uroot4.修改root用户的密码为123456(当然,你需要将123456改成你要设置的密码);mysql>updatemysql.usersetpassword=PASSWORD('123456')whereUser='root'mysql>flushprivilegesmysql>quit重新启动MySQL/etc/init.d/mysqlrestart就可以使用新密码123456登录了。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)