System: CentOS7
Docker Version: 20.10.16
Docker API Version: 1.41
Docker安装MySQL8.0, 设置远程访问, 并挂载数据到本地
1. 拉取镜像
docker pull mysql
2. 创建并运行容器
# 注: []内容自行替换
docker run --name [mysql-name] -v [/app/mysql/data]:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=[password] -p [3308]:3306 -d mysql --character-set-server=utf8mb4
# #参数解释#
# --name 指定容器名称
# -v 目录挂载(冒号前是宿主机目录, 后是容器目录, 挂载后可以实现互通互传)
# -e 指定环境变量(MYSQL_ROOT_PASSWORD 设置Root用户密码)
# -p 端口映射(冒号前是宿主机端口, 后是容器端口)
# -d 后台运行
# --character-set-server 设置编码
# Ex:
docker run --name xmysql -v /app/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysql.admin -p 3308:3306 -d mysql --character-set-server=utf8mb4
3. 设置允许远程连接
打开容器交互模式(容器名称或者ID根据实际情况填写)
docker exec -it xmysql bash
登录MySQL
mysql -u root -p
添加远程登录用户(用户名密码可自定义)
CREATE USER 'admin'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
给新建用户赋予权限
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
刷新
flush privileges;