1 安装mysql docker pull mysql:5.7

  1. [root@hadoop-104 module]# docker pull mysql:5.7
  2. 5.7: Pulling from library/mysql
  3. 123275d6e508: Already exists
  4. 27cddf5c7140: Pull complete
  5. c17d442e14c9: Pull complete
  6. 2eb72ffed068: Pull complete
  7. d4aa125eb616: Pull complete
  8. 52560afb169c: Pull complete
  9. 68190f37a1d2: Pull complete
  10. 3fd1dc6e2990: Pull complete
  11. 85a79b83df29: Pull complete
  12. 35e0b437fe88: Pull complete
  13. 992f6a10268c: Pull complete
  14. Digest: sha256:82b72085b2fcff073a6616b84c7c3bcbb36e2d13af838cec11a9ed1d0b183f5e
  15. Status: Downloaded newer image for mysql:5.7
  16. docker.io/library/mysql:5.7

2 查看mysql的容器 docker images

  1. [root@hadoop-104 module]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE
  3. mysql 5.7 f5829c0eee9e 2 hours ago 455MB

3 启动mysql容器

  1. sudo docker run -p 3306:3306 --name mysql \
  2. -v /mydata/mysql/log:/var/log/mysql \
  3. -v /mydata/mysql/data:/var/lib/mysql \
  4. -v /mydata/mysql/conf:/etc/mysql \
  5. -e MYSQL_ROOT_PASSWORD=root \
  6. -d mysql:5.7
  7. #参数说明
  8. #-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口
  9. #-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
  10. #-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
  11. #-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
  12. #-e MYSQL_ROOT_PASSWORD=root:初始化 root

4 修改配置(可跳过)

  1. [root@hadoop-104 conf]# pwd
  2. /mydata/mysql/conf
  3. [root@hadoop-104 conf]# cat my.cnf
  4. [client]
  5. default-character-set=utf8
  6. [mysql]
  7. default-character-set=utf8
  8. [mysqld]
  9. init_connect='SET collation_connection = utf8_unicode_ci'
  10. init_connect='SET NAMES utf8'
  11. character-set-server=utf8
  12. collation-server=utf8_unicode_ci
  13. skip-character-set-client-handshake
  14. skip-name-resolve
  15. [root@hadoop-104 conf]# docker restart mysql
  16. mysql
  17. [root@hadoop-104 conf]#

5 进入容器查看配置:(可跳过)

  1. [root@hadoop-104 conf]# docker exec -it mysql /bin/bash
  2. root@b3a74e031bd7:/# whereis mysql
  3. mysql: /usr/bin/mysql /usr/lib/mysql /etc/mysql /usr/share/mysql
  4. root@b3a74e031bd7:/# ls /etc/mysql
  5. my.cnf
  6. root@b3a74e031bd7:/# cat /etc/mysql/my.cnf
  7. [client]
  8. default-character-set=utf8
  9. [mysql]
  10. default-character-set=utf8
  11. [mysqld]
  12. init_connect='SET collation_connection = utf8_unicode_ci'
  13. init_connect='SET NAMES utf8'
  14. character-set-server=utf8
  15. collation-server=utf8_unicode_ci
  16. skip-character-set-client-handshake
  17. skip-name-resolve
  18. root@b3a74e031bd7:/#

6 mysql设置可远程连接

  1. #进入容器
  2. docker exec -it 62349aa31687 /bin/bash
  3. #登入msyql
  4. mysql -uroot -p
  5. #授权
  6. mysql> GRANT ALL ON *.* TO 'root'@'%';
  7. #刷新权限
  8. mysql> flush privileges;
  9. #更新加密规则
  10. mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
  11. #更新root用户密码
  12. mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
  13. #刷新权限
  14. mysql> flush privileges;

7 重启mysql

  1. docker restart mysql