安装docker
url -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
启动docker
sudo systemctl start docker
安装mysql
docker pull mysql:8.0.23
[root@localhost /]# docker pull mysql:8.0.23
8.0.23: Pulling from library/mysql
f7ec5a41d630: Pull complete
9444bb562699: Pull complete
6a4207b96940: Pull complete
181cefd361ce: Pull complete
8a2090759d8a: Pull complete
15f235e0d7ee: Pull complete
d870539cd9db: Pull complete
5726073179b6: Pull complete
eadfac8b2520: Pull complete
f5936a8c3f2b: Pull complete
cca8ee89e625: Pull complete
6c79df02586a: Pull complete
Digest: sha256:6e0014cdd88092545557dee5e9eb7e1a3c84c9a14ad2418d5f2231e930967a38
Status: Downloaded newer image for mysql:8.0.23
docker.io/library/mysql:8.0.23
查看镜像是否安装
docker images
[root@localhost /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mysql 8.0.23 cbe8815cbea8 9 months ago 546MB
运行mysql
docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.23
[root@localhost /]# docker run -itd --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.23
73af0186ed0c7846a91cc45c6e04de9b848192adb0a214fac3a0f660ddceb737
[root@localhost /]#
[root@localhost /]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
73af0186ed0c mysql:8.0.23 "docker-entrypoint.s…" 8 seconds ago Up 6 seconds 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
–name:容器名
-p:端口映射,主机到端口
-e:配置信息,此处配置mysql的root用户的登陆密码
-d:后台运行容器,退出终端后容器继续运行
映射目录方式
docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0.23
[root@localhost mysql]# docker run -p 3306:3306 --name mysql \
> -v /usr/local/docker/mysql/conf:/etc/mysql \
> -v /usr/local/docker/mysql/logs:/var/log/mysql \
> -v /usr/local/docker/mysql/data:/var/lib/mysql \
> -e MYSQL_ROOT_PASSWORD=123456 \
> -d mysql:8.0.23
366873a17b552cc793053f19b3d9e1c4c53ac8b2c1272cb0d52c7ac362c3e510
查看运行情况
# 查看状态
docker ps -a
[root@localhost /]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
73af0186ed0c mysql:8.0.23 "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
# 是否正确
docker container ls
[root@localhost /]# docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
73af0186ed0c mysql:8.0.23 "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql
连接mysql
sudo docker exec -it mysql bash
mysql -uroot -p123456
[root@localhost /]# docker exec -it mysql bash
root@73af0186ed0c:/# mysql -uroot -p123456
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.23 MySQL Community Server - GPL
Copyright (c) 2000, 2021, 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>
若无法访问可能是防火墙问题
# 开放端口:
$ systemctl status firewalld
$ firewall-cmd --zone=public --add-port=3306/tcp -permanent
$ firewall-cmd --reload
# 关闭防火墙:
$ sudo systemctl stop firewalld
进入docker设置密码
$ sudo docker exec -it mysql bash
$ mysql -uroot -p123456
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select host,user,authentication_string from user;
+-----------+------------------+------------------------------------------------------------------------+
| host | user | authentication_string |
+-----------+------------------+------------------------------------------------------------------------+
| % | root | $A$005$|IUL 3-]ei\wWg0P8VHAZSKty7zs1vTxsaTO8afXEfvNZ6P9mP/.MEx20 |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root | $A$005$+xz+9bcxi1t=*Dpx-dGlUpL/Ha2IOnAA5qODKurVzsolOEKhnHt5uHZ6Rzgj0 |
+-----------+------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '111111';
Query OK, 0 rows affected (0.19 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select host,user,authentication_string from user;
+-----------+------------------+------------------------------------------------------------------------+
| host | user | authentication_string |
+-----------+------------------+------------------------------------------------------------------------+
| % | root | *FD571203974BA9AFE270FE62151AE967ECA5E0AA |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root | $A$005$+xz+9bcxi1t=*Dpx-dGlUpL/Ha2IOnAA5qODKurVzsolOEKhnHt5uHZ6Rzgj0 |
+-----------+------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)
# 密码改回123456
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> select host,user,authentication_string from user;
+-----------+------------------+------------------------------------------------------------------------+
| host | user | authentication_string |
+-----------+------------------+------------------------------------------------------------------------+
| % | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED |
| localhost | root | $A$005$+xz+9bcxi1t=*Dpx-dGlUpL/Ha2IOnAA5qODKurVzsolOEKhnHt5uHZ6Rzgj0 |
+-----------+------------------+------------------------------------------------------------------------+
5 rows in set (0.00 sec)