如何找到MySQL 5.7的root密码
答案:3 悬赏:40 手机版
解决时间 2021-03-27 11:01
- 提问者网友:孤凫
- 2021-03-26 19:09
如何找到MySQL 5.7的root密码
最佳答案
- 五星知识达人网友:佘樂
- 2021-03-26 20:38
方法一:
MySQL提供跳过访问控制的命令行参数,通过在命令行以此命令启动MySQL服务器:
safe_mysqld --skip-grant-tables&
即可跳过MySQL的访问控制,任何人都可以在控制台以管理员的身份进入MySQL数据库。
需要注意的是在修改完密码以后要把MySQL服务器停掉重新启动才会生效,先找到mysql.server 然后停止mysql服务。
# mysqld_safe --skip-grant-tables --skip-networking &
# mysql
>use mysql;
>update user set password=PASSWORd("new-password") where user="root";
>flush privileges;
【Mysql 5.7 忘记root密码或重置密码的详细方法】
1、修改配置文件my.cnf 按i编辑
在[mysqld]中添加
skip-grant-tables
例如:
[mysqld]
**skip-grant-tables**
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
键盘 Esc 保存修改 :wq退出。
2、重启mysql服务
service mysqld restart
3、用户登录
mysql -uroot -p (直接点击回车,密码为空)
选择数据库
use mysql;
下面我们就要修改密码了
以前的版本我们用的是以下修改
update user set password=password('root') where user='root';
但是在5.7版本中不存在password字段,所有我们要用以下修改进行重置密码
update user set authentication_string=password('123456') where user='root';
执行
flush privileges;
4、退出mysql
quit;
5、将最开始修改的配置文件my.cnf中的skip-grant-tables删除
6、重启mysql
7、当你登陆mysql之后你会发现,当你执行命令时会出现
ERROR 1820 (HY000): You must reset your password using ALTER USER statement;
这是提示你需要修改密码
当你执行了
SET PASSWORD = PASSWORd('123456');
如果执行成功后面的就不要看了,纯属浪费时间!
如果出现:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
你需要执行两个参数来把mysql默认的密码强度的取消了才行
set global validate_password_policy=0; set global validate_password_mixed_case_count=2;
这时你再执行
SET PASSWORD = PASSWORd('123456');
MySQL提供跳过访问控制的命令行参数,通过在命令行以此命令启动MySQL服务器:
safe_mysqld --skip-grant-tables&
即可跳过MySQL的访问控制,任何人都可以在控制台以管理员的身份进入MySQL数据库。
需要注意的是在修改完密码以后要把MySQL服务器停掉重新启动才会生效,先找到mysql.server 然后停止mysql服务。
# mysqld_safe --skip-grant-tables --skip-networking &
# mysql
>use mysql;
>update user set password=PASSWORd("new-password") where user="root";
>flush privileges;
【Mysql 5.7 忘记root密码或重置密码的详细方法】
1、修改配置文件my.cnf 按i编辑
在[mysqld]中添加
skip-grant-tables
例如:
[mysqld]
**skip-grant-tables**
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
键盘 Esc 保存修改 :wq退出。
2、重启mysql服务
service mysqld restart
3、用户登录
mysql -uroot -p (直接点击回车,密码为空)
选择数据库
use mysql;
下面我们就要修改密码了
以前的版本我们用的是以下修改
update user set password=password('root') where user='root';
但是在5.7版本中不存在password字段,所有我们要用以下修改进行重置密码
update user set authentication_string=password('123456') where user='root';
执行
flush privileges;
4、退出mysql
quit;
5、将最开始修改的配置文件my.cnf中的skip-grant-tables删除
6、重启mysql
7、当你登陆mysql之后你会发现,当你执行命令时会出现
ERROR 1820 (HY000): You must reset your password using ALTER USER statement;
这是提示你需要修改密码
当你执行了
SET PASSWORD = PASSWORd('123456');
如果执行成功后面的就不要看了,纯属浪费时间!
如果出现:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
你需要执行两个参数来把mysql默认的密码强度的取消了才行
set global validate_password_policy=0; set global validate_password_mixed_case_count=2;
这时你再执行
SET PASSWORD = PASSWORd('123456');
全部回答
- 1楼网友:低血压的长颈鹿
- 2021-03-26 22:58
在新版的MySQL软件的安全特性总是受欢迎的,他们可以影响到使用和性能。现在在默认情况下,MySQL 5.7创建了一个root用户密码,所以在安装的本身可以被认为是安全的。这是一个必要的改变,但它已经混淆了一些客户和用户。我看到很多人在社交网站上询问着个变化。
我的root密码在哪?
答案取决于你安装MySQL 5.7或Percona Server 5.7的方式。我将要显示在哪里可以找到密码,这取决于你安装安装的方法和使用的分布。对于这些所有的例子,我认为这是一个新的安装,并且您可以使用默认的my.cnf。
Centos/Red Hat - RPM包
在安装过程中不显示密码。它是在错误日志中。自动生成的my.cnf包含这行:
log-error=/var/log/mysqld.log
所以,这是我们的密码:
# cat /var/log/mysqld.log | grep "temporary password"
2016-05-16T07:09:49.796912Z 1 [Note] A temporary password is generated for root@localhost: 8)13ftQG5OYl
Debian/Ubuntu
在软件包安装过程中,你会得到一个提示,询问root密码。如果您不设置它,MySQL会自动将root用户设成无密码。我们可以在包安装输出中读取以下行:
2016-05-16T07:27:21.532619Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
但它使用了auth_socket配置插件。你将只能使用UNIX socket连接,因此任何试图使用本地IP或网络连接都会出现故障。稍后,你可以更改密码,以便允许网络连接(如在这篇文章中解释道)。
所有的分布——二进制包
自从MySQL 5.7.6的mysql_install_db被弃用以来,你需要使用mysqld来初始化所有系统数据库(如MySQL,它包含用户和密码)。你有两种方法:
–initialize:这是默认的和推荐的选项。它将创建一个MySQL数据库包括一个随机密码,将写在错误日志中。
# tail -n1 /var/log/mysql/error.log
2016-05-16T07:47:58.199154Z 1 [Note] A temporary password is generated for root@localhost: wzgds/:Kf2,g
如果你没有错误日志的配置指令,或在任何my . Cnf,那么它将在datadir中写下host_name.err名字。
–initialize-insecure:datadir将初始化没有设置密码的root用户随机设置一个密码。
# tail -n1 /var/log/mysql/error.log
2016-05-16T07:51:28.506142Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
总结
不幸的是,更高的安全性也会带来更多的混乱。根据不同的安装方法和分布,MySQL 5.7的root密码的过程是不同的,所以在每次安装后要多加关注错误日志,并且也要看安装过程中在屏幕上输出的显示。万一你真的丢失了(或由于某种原因删除了错误日志),你仍然可以启动mysqld,使用–skip-grant-tables来访问数据库和更改密码。
原文: Where Is the MySQL 5.7 Root Password?
我的root密码在哪?
答案取决于你安装MySQL 5.7或Percona Server 5.7的方式。我将要显示在哪里可以找到密码,这取决于你安装安装的方法和使用的分布。对于这些所有的例子,我认为这是一个新的安装,并且您可以使用默认的my.cnf。
Centos/Red Hat - RPM包
在安装过程中不显示密码。它是在错误日志中。自动生成的my.cnf包含这行:
log-error=/var/log/mysqld.log
所以,这是我们的密码:
# cat /var/log/mysqld.log | grep "temporary password"
2016-05-16T07:09:49.796912Z 1 [Note] A temporary password is generated for root@localhost: 8)13ftQG5OYl
Debian/Ubuntu
在软件包安装过程中,你会得到一个提示,询问root密码。如果您不设置它,MySQL会自动将root用户设成无密码。我们可以在包安装输出中读取以下行:
2016-05-16T07:27:21.532619Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
但它使用了auth_socket配置插件。你将只能使用UNIX socket连接,因此任何试图使用本地IP或网络连接都会出现故障。稍后,你可以更改密码,以便允许网络连接(如在这篇文章中解释道)。
所有的分布——二进制包
自从MySQL 5.7.6的mysql_install_db被弃用以来,你需要使用mysqld来初始化所有系统数据库(如MySQL,它包含用户和密码)。你有两种方法:
–initialize:这是默认的和推荐的选项。它将创建一个MySQL数据库包括一个随机密码,将写在错误日志中。
# tail -n1 /var/log/mysql/error.log
2016-05-16T07:47:58.199154Z 1 [Note] A temporary password is generated for root@localhost: wzgds/:Kf2,g
如果你没有错误日志的配置指令,或在任何my . Cnf,那么它将在datadir中写下host_name.err名字。
–initialize-insecure:datadir将初始化没有设置密码的root用户随机设置一个密码。
# tail -n1 /var/log/mysql/error.log
2016-05-16T07:51:28.506142Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
总结
不幸的是,更高的安全性也会带来更多的混乱。根据不同的安装方法和分布,MySQL 5.7的root密码的过程是不同的,所以在每次安装后要多加关注错误日志,并且也要看安装过程中在屏幕上输出的显示。万一你真的丢失了(或由于某种原因删除了错误日志),你仍然可以启动mysqld,使用–skip-grant-tables来访问数据库和更改密码。
原文: Where Is the MySQL 5.7 Root Password?
- 2楼网友:末日狂欢
- 2021-03-26 21:55
(1).由于MySQL5.7在安装完后,第一次启动时,会在root目录下生产一个随机的密码,文件名为 .mysql_secret
所以,登录时需要用随机密码登录,然后通过以下命令修改密码
“SET PASSWORD = PASSWORd(‘new password’);”
(2). 在忘记root密码的时候,
以windows为例:
1. 关闭正在运行的MySQL服务。
2. 打开DOS窗口,转到mysql\bin目录
3. 输入mysqld --skip-grant-tables 回车
--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
5. 输入mysql回车,如果成功,将出现MySQL提示符 >.
6. 连接权限数据库: use mysql; (别忘了最后加分号) .
7. 改密码:update user set password=password(“123”) where user=“root”; (别忘了最后加分号) .
如果修改密码出现
**mysql修改密码错误 ERROR 1054 (42S22)**
则使用 mysql>update mysql.user set authentication_string=password(‘123456’) where user='root' and Host ='localhost';
或者 update MySQL.user set password=PASSWORD(‘123456’) where User='root';
8. mysql>flush privileges; #更新权限
9. 退出 quit.
10. 注销系统,再进入,
输入 mysql -u root -p
使用用户名root和刚才设置的新密码123456登录。
(3). 知道root密码的时候
方法1: 用SET PASSWORD命令
首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
所以,登录时需要用随机密码登录,然后通过以下命令修改密码
“SET PASSWORD = PASSWORd(‘new password’);”
(2). 在忘记root密码的时候,
以windows为例:
1. 关闭正在运行的MySQL服务。
2. 打开DOS窗口,转到mysql\bin目录
3. 输入mysqld --skip-grant-tables 回车
--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
5. 输入mysql回车,如果成功,将出现MySQL提示符 >.
6. 连接权限数据库: use mysql; (别忘了最后加分号) .
7. 改密码:update user set password=password(“123”) where user=“root”; (别忘了最后加分号) .
如果修改密码出现
**mysql修改密码错误 ERROR 1054 (42S22)**
则使用 mysql>update mysql.user set authentication_string=password(‘123456’) where user='root' and Host ='localhost';
或者 update MySQL.user set password=PASSWORD(‘123456’) where User='root';
8. mysql>flush privileges; #更新权限
9. 退出 quit.
10. 注销系统,再进入,
输入 mysql -u root -p
使用用户名root和刚才设置的新密码123456登录。
(3). 知道root密码的时候
方法1: 用SET PASSWORD命令
首先登录MySQL。
格式:mysql> set password for 用户名@localhost = password('新密码');
例子:mysql> set password for root@localhost = password('123');
方法2:用mysqladmin
格式:mysqladmin -u用户名 -p旧密码 password 新密码
例子:mysqladmin -uroot -p123456 password 123
方法3:用UPDATE直接编辑user表
首先登录MySQL。
mysql> use mysql;
mysql> update user set password=password('123') where user='root' and host='localhost';
mysql> flush privileges;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯