docker安装mysql5.7.5
1.拉取镜像docker pull mysql:5.7.5 2.创建挂载目录
mkdir -p /local_path/mysql/data
mkdir -p /local_path/mysql/conf
mkdir -p /local_path/mysql/logs
1
2
3
2
3
- 运行镜像
docker run --privileged=true --name mysql5.7 -p 3306:3306 -d -v /local_path/mysql/data:/var/lib/mysql -v /local_path/mysql/conf:/etc/mysql/ -v /local_path/mysql/logs:/var/log/mysql mysql:5.7.5
1
会有如下报错,需要设置用户
- 创建my.cnf文件
[mysqld]
user=root
skip-grant-tables
1
2
3
2
3
- 拷贝my.cnf 到容器/etc/my.cnf
- 重新运行容器 docker restart id
- 进入容器
docker exec -it id sh
1
- 第一次运行 mysql -u root -p 直接回车,不需要输入密码(my.cnf skip-grant-tables配置的作用)
- 修改密码
update mysql.user set password=password('你的密码') where user='root' and host='root' or host='localhost';
flush privileges;
// 去掉my.cnf skip-grant-tables
// 重启容器
docker restart id
1
2
3
4
5
2
3
4
5
- 允许远程访问
use mysql;
select host from user where user='root';
update user set host = '%' where user = 'root';
flush privileges;
1
2
3
4
2
3
4
- 出现 You must SET PASSWORD before executing this statement 可以使用SET PASSWORD = PASSWORD('你的密码'); 解决