MySQL 是世界上最受欢迎的开源数据库。凭借其可靠性、易用性和性能,MySQL 已成为 Web 应用程序的数据库优先选择。
1、查看可用的 MySQL 版本
访问 MySQL 镜像库地址:https://hub.docker.com/_/mysql?tab=tags 。
可以通过 Sort by 查看其他版本的 MySQL,默认是最新版本 mysql:latest 。
此外,我们还可以用 docker search mysql 命令来查看可用版本:
$ docker search mysql
2、拉取 MySQL 镜像
这里我们拉取官方的最新版本的镜像:
$ docker pull mysql:latest
3、查看本地镜像
使用以下命令来查看是否已安装了 mysql:
$ docker images
4、运行容器
安装完成后,我们可以使用以下命令来运行 mysql 容器:
$ docker run -itd --name mysql-test -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
参数说明:
- -p 3307:3306 :映射容器服务的 3306 端口到宿主机的 3307 端口,外部主机可以直接通过 宿主机ip:3307 访问到 MySQL 的服务。
- MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
5、安装成功
通过 docker ps 命令查看是否安装成功。
changedeMBP:~ changeluo$ docker ps
CONTAINER ID IMAGE ... PORTS NAMES
09eda8cd3faa mysql ... 33060/tcp, 0.0.0.0:3307->3306/tcp mysql-test
4ad536f6f534 nginx ... 0.0.0.0:8090->80/tcp runoops-php-nginx
bf521ae86572 php:7.4.30-fpm ... 9000/tcp myphp-fpm
本机可以通过 root 和密码 123456 访问 MySQL 服务。
如果安装了mysql8 版本,需要设置远程登录:
#进入容器
$ docker exec -it mysql-test bash
root@09eda8cd3faa:/# mysql -uroot -p
Enter password: #输入之前的密码123456
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.29 MySQL Community Server - GPL
...
#可以修改root用户密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'runoops123';
#添加远程登录用户
mysql> CREATE USER 'runoopstest'@'%' IDENTIFIED WITH mysql_native_password BY 'runoops123';
Query OK, 0 rows affected (0.02 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'runoopstest'@'%'; #赋权
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges; #立即生效
Query OK, 0 rows affected (0.04 sec)
mysql> exit #退出mysql
Bye
root@09eda8cd3faa:/# exit #退出mysql-test容器
exit
本机通过端口3307端口访问:
$ mysql -u runoopstest -h 127.0.0.1 -P 3307 -p