1 安装mysql docker pull mysql:5.7
[root@hadoop-104 module]# docker pull mysql:5.75.7: Pulling from library/mysql123275d6e508: Already exists 27cddf5c7140: Pull complete c17d442e14c9: Pull complete 2eb72ffed068: Pull complete d4aa125eb616: Pull complete 52560afb169c: Pull complete 68190f37a1d2: Pull complete 3fd1dc6e2990: Pull complete 85a79b83df29: Pull complete 35e0b437fe88: Pull complete 992f6a10268c: Pull complete Digest: sha256:82b72085b2fcff073a6616b84c7c3bcbb36e2d13af838cec11a9ed1d0b183f5eStatus: Downloaded newer image for mysql:5.7docker.io/library/mysql:5.7
2 查看mysql的容器 docker images
[root@hadoop-104 module]# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEmysql 5.7 f5829c0eee9e 2 hours ago 455MB
3 启动mysql容器
sudo docker run -p 3306:3306 --name mysql \-v /mydata/mysql/log:/var/log/mysql \-v /mydata/mysql/data:/var/lib/mysql \-v /mydata/mysql/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=root \-d mysql:5.7#参数说明#-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口#-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机#-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机#-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机#-e MYSQL_ROOT_PASSWORD=root:初始化 root
4 修改配置(可跳过)
[root@hadoop-104 conf]# pwd/mydata/mysql/conf[root@hadoop-104 conf]# cat my.cnf[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]init_connect='SET collation_connection = utf8_unicode_ci'init_connect='SET NAMES utf8'character-set-server=utf8collation-server=utf8_unicode_ciskip-character-set-client-handshakeskip-name-resolve[root@hadoop-104 conf]# docker restart mysqlmysql[root@hadoop-104 conf]#
5 进入容器查看配置:(可跳过)
[root@hadoop-104 conf]# docker exec -it mysql /bin/bashroot@b3a74e031bd7:/# whereis mysqlmysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/share/mysqlroot@b3a74e031bd7:/# ls /etc/mysql my.cnfroot@b3a74e031bd7:/# cat /etc/mysql/my.cnf [client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]init_connect='SET collation_connection = utf8_unicode_ci'init_connect='SET NAMES utf8'character-set-server=utf8collation-server=utf8_unicode_ciskip-character-set-client-handshakeskip-name-resolveroot@b3a74e031bd7:/#
6 mysql设置可远程连接
#进入容器docker exec -it 62349aa31687 /bin/bash#登入msyqlmysql -uroot -p#授权mysql> GRANT ALL ON *.* TO 'root'@'%';#刷新权限mysql> flush privileges;#更新加密规则mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;#更新root用户密码mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';#刷新权限mysql> flush privileges;
7 重启mysql
docker restart mysql