docker下启动mysql服务,重置docker下安装的mysql密码

使用service start mysqld是不行的
使用 service —status-all查看服务会什么都查询不到。

在docker里边重启mysql服务不能这样使用。需要找到mysql的服务位置执行一下即可。

重启docker下mysql服务步骤

1:进入mysql所在容器后,在进入usr/sbin下面
2:进入usr/sbin后可以使用ls查看文件看到mysqld这个文件
3:直接输入mysqld即可,就会启动了这个服务了,如果正在启动中你可以先停掉
docker下启动mysql服务,重置docker - 图1

注意启动mysqld服务可能会造成docker容器停掉,你重新启动一下对应的docker容器就Ok

重置docker下安装的mysql密码

一: 设置免密码登陆
修改docker.cnf文件添加一行skip-grant-tables即可。
1:编辑docker.cnf

  1. vim /etc/mysql/conf.d/docker.cnf

2:添加skip-grant-tables
docker下启动mysql服务,重置docker - 图2
修改后docker容器可能会停掉,重启一下docker容器就行

二: 重置密码

update user set authentication_string = ‘123456’ where user = ‘root’;

或者先把root密码设置为空:
update user set authentication_string = ‘’ where user = ‘root’;
然后用空密码进去修改密码
mysql -u root -p //提示输入密码时直接敲回车,刚刚已经将密码置空了
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘abc123!@#’;//有些版本如果密码太简单了可能会报错。

还有mysql5.7.6版本后 废弃user表中 password字段 和 password()方法,所以旧方法重置密码对mysql8.0版本是不行的,注意一下

三: 刷新
flush privileges;

四: 把第一步配置的免密登录干掉
修改docker.cnf去掉skip-grant-tables即可。

五: mysql密码过期设置

  1. [mysqld]
  2.     default_password_lifetime=90
    或者:mysql> SET GLOBAL default_password_lifetime = 90;
    查询过期时间show variables like 'default_password_lifetime';