在Docker中快速使用各个版本的MySQL数据库
介绍
https://hub.docker.com/_/mysql
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | nohup docker pull mysql:5.5.62 & nohup docker pull mysql:5.6.51 & nohup docker pull mysql:5.7.39 & nohup docker pull mysql:8.0.30 & docker rm mysql5562 -f docker rm mysql5651 -f docker rm mysql5739 -f docker rm mysql8030 -f mkdir -p /etc/mysql/mysql5562/ mkdir -p /etc/mysql/mysql5651/ mkdir -p /etc/mysql/mysql5739/ mkdir -p /etc/mysql/mysql8030/ docker run -d --name mysql5562 -h mysql5562 -p 3415:3306 \ -v /etc/mysql/mysql5562/conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=lhr -e TZ=Asia/Shanghai \ mysql:5.5.62 docker run -d --name mysql5651 -h mysql5651 -p 3416:3306 \ -v /etc/mysql/mysql5651/conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=lhr -e TZ=Asia/Shanghai \ mysql:5.6.51 docker run -d --name mysql5739 -h mysql5739 -p 3417:3306 \ -v /etc/mysql/mysql5739/conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=lhr -e TZ=Asia/Shanghai \ mysql:5.7.36 docker run -d --name mysql8030 -h mysql8030 -p 3418:3306 \ -v /etc/mysql/mysql8030/conf:/etc/mysql/conf.d \ -e MYSQL_ROOT_PASSWORD=lhr -e TZ=Asia/Shanghai \ mysql:8.0.30 docker logs -f mysql5562 docker logs -f mysql5651 docker logs -f mysql5739 docker logs -f mysql8030 mysql -uroot -plhr -h192.168.1.35 -P3415 -e "select now(),@@hostname;" mysql -uroot -plhr -h192.168.1.35 -P3416 -e "select now(),@@hostname;" mysql -uroot -plhr -h192.168.1.35 -P3417 -e "select now(),@@hostname;" mysql -uroot -plhr -h192.168.1.35 -P3418 -e "select now(),@@hostname;" cat > /etc/mysql/mysql5562/conf/my.cnf <<"EOF" [mysqld] skip-name-resolve log-bin server_id=55623415 character_set_server=utf8mb4 EOF cat > /etc/mysql/mysql5651/conf/my.cnf <<"EOF" [mysqld] skip-name-resolve log-bin server_id=56513416 character_set_server=utf8mb4 EOF cat > /etc/mysql/mysql5739/conf/my.cnf <<"EOF" [mysqld] default-time-zone = '+8:00' log_timestamps = SYSTEM skip-name-resolve log-bin server_id=57393417 character_set_server=utf8mb4 EOF cat > /etc/mysql/mysql8030/conf/my.cnf <<"EOF" [mysqld] default-time-zone = '+8:00' log_timestamps = SYSTEM skip-name-resolve log-bin server_id=80303418 character_set_server=utf8mb4 EOF docker restart mysql5562 mysql5651 mysql5739 mysql8030 |
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | root@lhrxxt:~# docker run -d --name mysql8030 -h mysql8030 -p 3418:3306 \ > -v /etc/mysql/mysql8030/conf:/etc/mysql/conf.d \ > -e MYSQL_ROOT_PASSWORD=lhr -e TZ=Asia/Shanghai \ > mysql:8.0.30 f6e94a91fd69e26d0e9e7bd5b4ef11ecde0f4b8502299c537342141ea01bf80a root@lhrxxt:~# root@lhrxxt:~# cat > /etc/mysql/mysql8030/conf/my.cnf <<"EOF" > [mysqld] > default-time-zone = '+8:00' > log_timestamps = SYSTEM > skip-name-resolve > log-bin > server_id=80303418 > character_set_server=utf8mb4 > EOF root@lhrxxt:~# docker restart mysql8030 mysql8030 root@lhrxxt:~# docker exec -it mysql8030 bash bash-4.4# mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) bash-4.4# mysql -uroot -plhr mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9 Server version: 8.0.30 MySQL Community Server - GPL Copyright (c) 2000, 2022, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.05 sec) mysql> create database lhrdb; Query OK, 1 row affected (0.04 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | lhrdb | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec) |