1.
docker run --name mysql -d -it -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root mysql:8.0.20
(创建成功)
docker cp 容器Id:/etc/mysql /opt/
docker cp a9a6:/etc/mysql/ /opt/docker/mysql/conf
2.
docker run -p 3309:3306 --name mysql2 --restart unless-stopped -v /opt/docker/mysql/conf:/etc/mysql -v /opt/docker/mysql/logs:/logs -v /opt/docker/mysql/data:/var/lib/mysql -v /etc/localtime:/etc/localtime -v /opt/docker/mysql:/var/lib/mysql-files -e MYSQL_ROOT_PASSWORD=990904 -d mysql:8.0.20
( -- priviledge = true 不起作用 container中无法创建/var/lib/mysql目录, 去除priviledge后,提示/var/lib/mysql-files没有对应的目录,添加-v /opt/docker/mysql:/var/lib/mysql-files)
3. 然后mysql密码不对
修改/opt/docker/mysql/conf/mysql/my.cnf
添加:
#在[mysqld]下添加
skip-grant-tables
4. docker restart 容器Id
5.docker exec –it 容器Id /bin/bash
6. mysql –u root –p 回车进入mysql
7. > use mysql;
> update user set authentication_string='' where user='root';
> flush privileges;
8. #1.停止服务
systemctl stop mysqld.service
#2.关闭不校验密码
vim /etc/my.cnf
#3.重启服务
systemctl start mysqld.service
9.
#按下回车直接登陆
mysql -uroot -p
#修改密码,新密码需要同时满足:八位数+大小写字母+特殊符号
> use mysql;
> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
> flush privileges;
10. 授权远程连接
update user set host='%' where user ='root';
update user set plugin='mysql_native_password' where user ='root';
grant all on *.* to 'root'@'%';
flush privileges;