Docker 安装 MySQL

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