官方镜像
启动 MySQL 容器
Docker 启动容器
1
| $ docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=your-password -d mysql:8.0.39
|
- 持久化 MySQL 容器内的数据库数据(后台运行)
1
| $ docker run --name mysql8 -v /my/own/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=your-password -d mysql:8.0.39
|
- 指定 MySQL 配置文件来启动容器(后台运行),假设本地配置文件的路径为
/my/custom/config-file.cnf
1
| $ docker run --name mysql8 -v /my/custom:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=your-password -d mysql:8.0.39
|
Docker Compose 启动容器
- 创建
docker-compose.yml
配置文件,并写入以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| version: '3.9'
services:
mysql: image: mysql:8.0.39 container_name: mysql8 restart: always ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: your-password volumes: - '/my/own/datadir:/var/lib/mysql'
|
- 在
docker-compose.yml
配置文件所在的目录下,使用以下命令创建并启动容器
测试 MySQL 容器
查看容器的日志信息
1
| $ docker logs -f --tail 50 mysql8
|
登录 MySQL 服务器
- 使用
docker exec
命令连接进 Docker 容器内部
1
| $ docker exec -it mysql8 bash
|
- 连接进 Doker 容器内部后,可以使用以下命令登录 MySQL 服务器
1
| $ mysql -h localhost -u root -p
|
远程登录 MySQL
在默认情况下,MySQL 是不支持远程登录的,详细说明请看 这里。强烈建议单独创建一个普通用户,然后授权该用户可以远程访问特定的数据库。首先连接进 Docker 容器的内部,然后使用 root
用户登录 MySQL 服务器,最后执行以下 SQL 语句。
1 2 3 4 5 6 7 8
| CREATE USER 'your-user-name'@'%' IDENTIFIED WITH mysql_native_password BY 'your-password';
GRANT ALL PRIVILEGES ON your-db-name.* TO 'your-user-name'@'%';
FLUSH PRIVILEGES;
|