# docker 中下载 mysql
docker pull mysql
#启动
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
#进入容器
docker exec -it mysql bash
#登录mysql
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
#添加远程登录用户
CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%';
还原
1)在本机路径下创建mysql目录
mkdir -p ~/mysql/data ~/mysql/logs ~/mysql/conf ~/mysql/sql
2)将需要还原的sql脚本存放到 /mysql/sql 目录下
3)运行容器
docker run --name mysql -p 3306:3306 --privileged=true -v /root/mysql/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -v /root/mysql/sql:/docker-entrypoint-initdb.d -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v /root/mysql/sql:/docker-entrypoint-initdb.d 将备份好的数据库文件存放在此,docker启动进会读取些文件的内容,并将数据库还原到docker
-v /root/mysql/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
-v /root/mysql/conf/mysqld.cnf :将mysql配置文件挂载到docker容器里 。
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
--privileged=true 在docker run时给该容器加权限