docker安装mysql
访问 MySQL 镜像库地址
拉取mysql5.7版本
docker pull mysql:5.7
如果需要最新版本
docker pull mysql:latest
等待下载
下载完成后查看镜像
docker images
启动docker容器
docker run -d --name mysql5.7 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
- docker run 创建一个新的容器,同时运行这个容器
- --name mysqlcontainer1:代表容器的名字
- -d 后台运行
- -p:代表端口映射,格式为宿主机映射端口:容器内部运行端口
- --restart unless-stopped 容器重启策略
- -e:代表添加环境变量,MYSQL_ROOT_PASSWORD是root用户的登陆密码123456
- \ shell命令换行符
- mysql:5.7:表示使用的镜像以及版本号
- -v:为启动的容器挂在volume,mysql数据库默认数据目录是容器中的/var/lib/mysql目录,该目录是容器自带的一个volume,如果不为mysql容器单独配置数据目录volume,那么我们会发现重启mysql容器后mysql数据库中数据都丢失了。为了持久化mysql数据,我们在启动mysql容器时添加了-v /data/mysqldata:/var/lib/mysql参数,把主机的/data/mysqldata目录挂载到容器的/var/lib/mysql下
- -v /data/mysqldata/log:/var/log/mysql 将日志文件挂载到主机
- -v /data/mysqldata/data:/var/lib/mysql 将mysql存储文件挂载到主机
- -v /data/mysqldata/conf:/etc/mysql 将配置文件挂载到主机
如果需要持久化mysql的数据,再执行下面的代码
docker run -d --name mysqlcontainer1 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /data/mysqldata/log:/var/log/mysql -v /data/mysqldata/data:/var/lib/mysql -v /data/mysqldata/conf:/etc/mysql mysql:5.7
更新密码
使用命令进入mysql终端
docker exec -it mysql bash
登录mysql
mysql -u root -p
修改mysql密码
SET PASSWORD FOR 'root' = PASSWORD('密码');
修改本地mysql密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('密码');
给root 用户分配权限
alter user 'root'@'%' identified with mysql_native_password by '123456';
重启docker
docker restart mysqlcontainer1
服务器把3306防火墙解开