重置MySQL 5.6中的ROOT密码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重置MySQL 5.6中的ROOT密码相关的知识,希望对你有一定的参考价值。
我一直在关注these instructions重置root密码,以便在Windows 7笔记本电脑上本地安装mysql 5.6
。
我停止了服务,创建了init-file,并运行了以下命令(以管理员身份):
"C:Program FilesMySQLMySQL Server 5.6inmysqld" --defaults-file="C:ProgramDataMySQLMySQL Server 5.6my.ini" --init-file=C:\MySQL-misc\mysql-init.txt
我收到以下警告:
2014-02-08 15:44:10 0 [警告]不推荐使用具有隐式DEFAULT值的TIMESTAMP。请使用--explicit_defaults_for_timestamp服务器选项(有关详细信息,请参阅文档)。
由于这是一个警告,我不确定是否需要修复任何东西,然后再次重做该过程。
目前,命令窗口仍处于打开状态,不接受任何输入。我应该强制关闭它还是我可以做任何事情来优雅地完成这个过程?
UPDATE
我杀死了命令窗口,并尝试重新启动该服务。出了错误。
重新启动Windows,服务自动启动。新的root password
似乎有效。我成功地使用了需要密码的Workbench的各种功能。
所以,警告确实只是一个警告。
在Windows上:
0)关闭服务mysql56
1)去C:ProgramDataMySQLMySQL Server 5.6
,注意ProgramData
是一个隐藏文件夹
2)寻找文件my.ini
,打开它并在skip-grant-tables
下面添加一行[mysqld]
,保存
[mysqld]
skip-grant-tables
3)开始服务mysql56
4)通过右键,您可以访问数据库,运行mysql
5)并使用下面的查询来更新密码
update mysql.user set password=PASSWORD('NEW PASSWORD') where user='root';
注意:对于较新版本,请使用authentication_string
而不是password
6)再次关闭服务,删除行skip-grant-tables
保存,然后再次启动服务。尝试使用您设置的密码登录。
在Mac上:
0)停止服务
sudo /usr/local/mysql/support-files/mysql.server stop
1)跳过授权表
sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
一旦它运行,不要关闭它,并打开一个新的终端窗口
2)进入mysql终端
/usr/local/mysql/bin/mysql -u root
3)更新密码
UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
对于像5.7这样的新版本,请使用
UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
4)运行FLUSH PRIVILEGES;
5)运行q
退出
6)启动mysql服务器
sudo /usr/local/mysql/support-files/mysql.server start
- 进入管理工具>服务,停止Mysql服务
- 打开开始>运行> cmd(以管理员身份运行)
- 使用以下行手动启动服务器:
mysqld -P3306 --skip-grant-tables
- 在新cmd(以管理员身份运行)中执行:
mysql -P3306 mysql
- 在mysql客户端中执行以下查询:
update mysql.user set authentication_string=password('new_password') where user='root';
而已!!
问题已经解决。
正如我的问题所述,我跟随instructions from MySQL manual。
这个过程并没有完全按照描述(这是我原来的帖子的原因),但它仍然有用(参见我的帖子中的更新部分)。
更新this answer有关MySQL 5.7的更改:
0)关闭服务mysql57
1)去C:ProgramDataMySQLMySQL Server 5.7
,注意ProgramData
是一个隐藏文件夹
2)寻找文件my.ini
,打开它并在skip-grant-tables
下面添加一行[mysqld]
,保存
[mysqld]
skip-grant-tables
3)开始服务mysql57
4)通过右键,可以访问数据库,运行mysql
5)并使用下面的查询来更新密码
update mysql.user set authentication_string=password('NEW_PASSWORD') where user='root';
6)再次关闭服务,删除行skip-grant-tables
保存,然后再次启动服务。尝试使用您设置的密码登录。
万一你安装了Xampp。
- 转到C: xampp mysql bin
- 打开my.ini文件
- 把
skip-grant-tables
放在[mysqld]
下 - 转到Windows服务并停止mysql服务
- 从命令提示符
C:xamppmysqlinmysql
触发此命令 - 现在,使用MySQL查询
update mysql.user set password=PASSWORD('root') where user='root';
重置root密码 - 退出命令提示符。
- 重新启动在步骤4中关闭的mysql Windows服务。
- 现在,您将能够以root身份使用密码登录mysql。
对于Windows上的MySQL 5.6,我必须运行此语句才能使其正常工作。
UPDATE mysql.user
SET Password=PASSWORD('NEW PASSWORD'),
authentication_String=PASSWORD('NEW PASSWORD')
WHERE User='root';
First stop mysql server and follow below steps:
转到cmd i上的mysql bin目录,e。 cd C: ProgramData MySQL MySQL Server 5.6 bin
skip grant tables will allow you enter into mysql
- mysqld.exe --skip-grant-tables
Open new command prompt or on same command prompt
- mysql.exe -uroot -p(没有任何密码你可以登录mysql)
run below query to change mysql root password
- UPDATE mysql.user set password = password('root password')WHERE user ='root';
- 刷新权限
Thats it, Restart mysql and good to go with new password..!!
没有编辑mi.ini:
service mysql stop
mysqld_safe --skip-grant-tables
在单独的ssh会话上:
update mysql.user set password=PASSWORD('NEW PASSWORD') where user='root';
无需刷新权限,只需重启服务器即可
以上是关于重置MySQL 5.6中的ROOT密码的主要内容,如果未能解决你的问题,请参考以下文章
重置MySQL数据库root密码(linux/windows)
连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段