拉取镜像

docker pull mysql

docker pull mysql:latest

查看可用版本

docker search mysql

运行镜像

docker run --name mysql8 \ -v /my/mysql/config:/etc/mysql/conf.d \ -v /my/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d --restart always mysql:8.0

问题:

启动docker中的容器时报错: Error response from daemon: driver failed programming external connectivity on endpoint XXX(端口映射或启动容器时报错)

决办法:输入指令 如下指令,重启docker服务及可重新生成自定义链DOCKER

systemctl restart docker
docker restart mysql8

docker exec -it mysql8 mysql -uroot -p

docker exec -it mysql8 /bin/bash

mysql -u root -p

选择数据库:

show databases;

use mysql;

问题:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

1.修改/etc/my.cnf文件,在[mysqld]中添加skip-grant-tables(登录时跳过权限检查)

vi /etc/my.cnf

skip-grant-tables

重启数据库:docker restart mysql8

修改密码认证方式:

ALTER USER root@'%' IDENTIFIED WITH mysql_native_password BY '123456';

ALTER USER root@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

-- 刷新权限 FLUSH PRIVILEGES;

将my.cnf中的skip-grant-tables去除

vi /etc/my.cnf

重启服务

docker restart mysql8