目的:记录安装过程的命令和遇到的坑!
1.拉取mysql8.0官方镜像
docker pull mysql:8.0
2.启动命令
docker run --name mysql --restart=always -p 3306:3306 --privileged=true -v /root/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /root/mysql/data:/var/lib/mysql -v /root/mysql/log:/var/log/mysql -v /root/mysql/mysql-files:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=ABC123456789! -d mysql:8.0
可能遇到的坑
2.1 mysqld: Error on realpath() on ‘/var/lib/mysql-files’ (Error 2 - No such file or directory…
这个是没挂载 ,下面的命令导致
-v /root/mysql/mysql-files:/var/lib/mysql-files
3. docker ps 检查启动状态是否up
4. 进入容器
docker exec -it mysql /bin/bash
5.登录mysql
mysql -uroot -p
这里可能会遇到一个坑,就是输入启动命令中设置的ROOT密码(
ABC123456789!
)一直报错,这里只有走mysql重置密码流程。
6.在挂载的my.cnf配置文件中加上
[mysqld] skip-grant-tables
7.重启mysql docker restart mysql
8.再次进入容器 到输入密码这一步 直接按两次回车 进入 数据库操作界面
9.修改root密码及远程连接权限
use mysql; select user,authentication_string,host from user; update user set authentication_string='新密码' where user='root';//这里如果报错 ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement。需要先执行一下flush privileges;再执行本条语句 update user set host='%' where user='root'; //开启远程 flush privileges;
10.修改my.cnf,去掉免密码登录,重启mysql即可。
标签:files,root,mysql8.0,user,mysql,var,docker,安装 From: https://www.cnblogs.com/runwithraining/p/16901106.html