查找MySQL镜像
docker search mysql
拉起MySQL镜像(:5.7 表示5.7版本)
docker pull mysql:5.7
运行MySQL容器
docker run -d -p 3307:3306 --privileged=true -v /docker/mysql/conf/my.cnf:/etc/my.cnf -v /docker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
参数说明:
run
run 是运行一个容器
-d
表示后台运行
-p
表示容器内部端口和服务器端口映射关联
--privileged=true
设值MySQL 的root用户权限, 否则外部不能使用root用户登陆
-v /docker/mysql/conf/my.cnf:/etc/my.cnf
将服务器中的my.cnf配置映射到docker中的/docker/mysql/conf/my.cnf配置
-v /docker/mysql/data:/var/lib/mysql
同上,映射数据库的数据目录, 避免以后docker删除重新运行MySQL容器时数据丢失
-e MYSQL_ROOT_PASSWORD=123456
设置MySQL数据库root用户的密码
--name mysql
设值容器名称为mysql
mysql:5.7
表示从docker镜像mysql:5.7中启动一个容器
--character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci 设值数据库默认编码
新建MySQL用户, 先进入容器
>docker exec -it mysql bash
执行MySQL命令, 输入root密码, 连接MySQL
>mysql -uroot -p
输入密码后, 执行下面命令创建新用户 (用户名: yunze , 密码: yunze)
GRANT ALL PRIVILEGES ON . TO 'yunze'@'%' IDENTIFIED BY 'yunze' WITH GRANT OPTION;