我建立了個 mysql5.7 版本的 dokcer 容器取名 mysql ,可是我忘記了密碼。mysql
# 進入容器 docker exec -it mysql bash # 設置跳過權限表的加載 # 警告:這就意味着任何用戶都能登陸進來,並進行任何操做,至關不安全。 echo "skip-grant-tables" >> /etc/mysql/conf.d/docker.cnf # 退出容器 exit # 重啓容器 docker restart mysql # 再次進入容器 docker exec -it mysql bash # 登陸 mysql(無需密碼) mysql -uroot # 更新權限 flush privileges; # 修改密碼 alter user 'root'@'localhost' identified by '123456'; # 退出mysql exit # 替換掉剛纔加的跳過權限表的加載參數 sed -i "s/skip-grant-tables/ /" /etc/mysql/conf.d/docker.cnf # 退出容器 exit # 重啓容器 docker restart mysql
完成,如今能夠用 root 和剛纔設置的密碼 登陸sql
執行過程當中出錯了docker
mysql> alter user 'root'@'%' identified by '123456'; ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
這個時候咱們只須要 mysql> flush privileges ;
安全