我一直关注these instructions重置 root 密码,以便在Windows 7笔记本电脑上本地安装MySQL 5.6
。
我停止了服务,创建了 init-file ,然后运行以下命令(以管理员身份):
"C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqld" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.6\my.ini" --init-file=C:\\MySQL-misc\\mysql-init.txt
我收到了以下警告:
2014-02-08 15:44:10 0 [警告] TIMESTAMP具有隐式DEFAULT值 已弃用。请使用--explicit_defaults_for_timestamp服务器 选项(有关详细信息,请参阅文档)。
由于这是一个警告,我不确定是否需要修复任何内容然后再重做该过程。
目前命令窗口仍然打开,不接受任何输入。我应该强制关闭它还是我可以做任何事情来优雅地完成这个过程?
更新
我杀了命令窗口并尝试重启服务。出了错误。
重新启动Windows,服务自动启动。 新 root password
似乎有效。我成功地使用了需要密码的Workbench的各种功能。
所以,警告确实只是一个警告。
答案 0 :(得分:54)
在Windows上:
0)关闭服务mysql56
1)转到C:\ProgramData\MySQL\MySQL 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
答案 1 :(得分:5)
使用以下行手动启动服务器:
mysqld -P3306 --skip-grant-tables
在新cmd(以管理员身份运行)中执行:
mysql -P3306 mysql
在mysql客户端中执行以下查询:
update mysql.user set authentication_string=password('new_password') where user='root';
就是这样!!
答案 2 :(得分:4)
此问题已已解决。
如我的问题所述,我遵循了instructions from MySQL manual。
这个过程并没有像所描述的那样完全(这就是我原来的帖子的原因)但是它仍然有效(请参阅我的帖子中的更新部分)。 / p>
答案 3 :(得分:2)
更新this answer有关MySQL 5.7的更改:
0)关闭服务Exception Note
1)转到mysql57
,请注意C:\ProgramData\MySQL\MySQL Server 5.7
是隐藏文件夹
2)查找文件ProgramData
,打开它并在my.ini
下面添加一行skip-grant-tables
,保存
[mysqld]
3)启动服务[mysqld]
skip-grant-tables
4)右键,你可以访问数据库,运行mysql
5)并使用以下查询更新密码
mysql57
6)再次关闭服务,删除行update mysql.user set authentication_string=password('NEW_PASSWORD') where user='root';
保存,然后再次启动服务。尝试使用您设置的密码登录。
答案 4 :(得分:0)
如果你安装了Xampp。
skip-grant-tables
置于[mysqld]
C:\xampp\mysql\bin\mysql
update mysql.user set password=PASSWORD('root') where user='root';
答案 5 :(得分:0)
对于Windows上的MySQL 5.6,我必须运行此语句才能使其正常工作。
UPDATE mysql.user
SET Password=PASSWORD('NEW PASSWORD'),
authentication_String=PASSWORD('NEW PASSWORD')
WHERE User='root';
答案 6 :(得分:0)
转到cmd i上的mysql bin目录。 cd C:\ ProgramData \ MySQL \ MySQL Server 5.6 \ bin
答案 7 :(得分:0)
不编辑mi.ini:
service mysql stop
mysqld_safe --skip-grant-tables
在单独的ssh会话上:
update mysql.user set password=PASSWORD('NEW PASSWORD') where user='root';
无需刷新特权,只需重新启动服务器
答案 8 :(得分:0)
如果遇到此错误:尝试重设root密码时,mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
。您可以尝试:
sudo service mysql stop
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables &
mysql -uroot
update mysql.user set authentication_string=password('your_password') where user='root';
flush privileges;
quit
sudo killall mysql
sudo service mysql start
mysql -u root -pyour_password
在Ubuntu 18.04中运行的MySQL 5.7中进行了测试