docker下启动mysql服务,重置docker下安装的mysql密码 电脑版发表于:2022/3/30 16:57 使用service start mysqld是不行的 使用 service --status-all查看服务会什么都查询不到。 在docker里边重启mysql服务不能这样使用。需要找到mysql的服务位置执行一下即可。 ### 重启docker下mysql服务步骤 1:进入mysql所在容器后,在进入usr/sbin下面 2:进入usr/sbin后可以使用ls查看文件看到mysqld这个文件 3:直接输入mysqld即可,就会启动了这个服务了,如果正在启动中你可以先停掉 ![](https://img.tnblog.net/arcimg/xiuxin2/c3337eff71a3439db0c5a295c42518d4.png) 注意启动mysqld服务可能会造成docker容器停掉,你重新启动一下对应的docker容器就Ok ### 重置docker下安装的mysql密码 **一: 设置免密码登陆** 修改docker.cnf文件添加一行skip-grant-tables即可。 1:编辑docker.cnf ``` vim /etc/mysql/conf.d/docker.cnf ``` 2:添加skip-grant-tables ![](https://img.tnblog.net/arcimg/xiuxin2/36a5fa5d791846d2ae9601b0f79a2b2c.png) 修改后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!@#';//有些版本如果密码太简单了可能会报错。 tn>还有mysql5.7.6版本后 废弃user表中 password字段 和 password()方法,所以旧方法重置密码对mysql8.0版本是不行的,注意一下 **三: 刷新 ** flush privileges; **四: 把第一步配置的免密登录干掉 ** 修改docker.cnf去掉skip-grant-tables即可。 **五: 可能还需要重启一下mysql服务 **