- docker安装mysql,直接拉取镜像,挂载关键目录即可启动,默认3306端口。此时无法直接连接,需要配置密码。
- docker进入mysql容器中
docker exec -it mysql bash #mysq是容器名称,也可以用容器id
- 通过修改mysql的配置进行免密登录,配置文件一般是my.cnf,如图
镜像里面没有vi工具,这里先备份养成好习惯,随后把文件复制一份到开始挂载好的目录文件夹中,在容器外修改好之后在进到容器中把my.cnf覆盖(也可以直接挂载整个文件)。
cp my.cnf my.cnf.bak #有备无患
修改内容:加上skip-grant-tables。重启mysql
- 这次执行mysql -u root -p回车即可跳过密码输入,在没设置这个参数前是无法登录的。
- 修改root的登录密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
如果需要支持远程主机访问则
ALTER USER 'root'@'%' IDENTIFIED BY '123456';
- 如果出现以下错误
mysql> ALTER USER 'root'@'localhost' 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;
Query OK, 0 rows affected (0.05 sec)
- 重新执行上面的修改,重启登录即可