本文将使用 MySQL 团队创建的 mysql-server Docker 镜像进行安装。需要注意的是:该镜像是专门为 Linux 平台构建的,在其他平台使用将会存在部分风险。
开始安装
下载 MySQL Server 镜像:
$ docker pull mysql/mysql-server:latest
启动 MySQL Server 实例:
$ docker run -d --name=brusw-mysql80 -p 3306:3306 \
--mount type=bind,src=/var/lib/mysql,dst=/var/lib/mysql \
--restart=always \
mysql/mysql-server:latest
-d
:设置容器后台运行--name
:指定容器名称为brusw-mysql80
-p
:把容器 3306 端口映射到主机 3306 端口--mount
:将主机/var/lib/mysql
目录挂载到容器/var/lib/mysql
目录--restart
:容器退出后总是(always)自动重启
修改密码
正式使用 MySQL 前,需要修改 root 账户的密码。
容器初始化完成后,可以在日志查看 root 账户的默认密码:
$ docker logs brusw-mysql80 2>&1 | grep GENERATED
[Entrypoint] GENERATED ROOT PASSWORD: ok;ybqecYM[AmxiLCUjiqyn2eBo
接着使用 root 账户从容器内连接到 MySQL 服务:
$ docker exec -it brusw-mysql80 mysql -uroot -p
Enter password:
在输入 root 账户的默认密码后,执行以下命令来重置密码:
$ ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
常见问题
使用客户端连接可能存在的问题以及解决方案
ERROR 1130: Host * is not allowed to connect to this MySQL server
$ use mysql;
$ update user set host='%' where user='root';
$ flush privileges;
ERROR 1251: Client does not support authentication protocol requested by server; consider upgrading MySQL client
$ use mysql;
$ alter user 'root'@'%' identified with mysql_native_password by '你的密码';
$ flush privileges;