docker安装MySQL数据库
docker安装MySQL数据库
1 拉取MySQL镜像
docker pull mysql docker pull mysql:5.7.36 docker images
2 运行容器
docker run -itd --name mysql-TestDB -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
- -p 3306:3306:映射容器服务的3306端口到宿主机的3306端口,外部主机可以直接通过宿主机ip:3306访问到MySQL的服务
- MYSQL_ROOT_PASSWORD=123456:设置MySQL服务root用户的密码
docker ps -a netstat -ntlp
3 进入容器登录数据库
docker exec -it mysql-TestDB /bin/bash mysql -u root -p
4 登录数据库(在容器外)
mysql -h 127.0.0.1 -u root -p
这个错误的原因是由于MySQL8.0之后的加密规则为caching_sha2_password,而在此之前的加密规则为mysql_native_password,可以将加密规则改成mysql_native_password。
解决方法:
# 进入MySQL容器 docker exec -it mysql-TestDB /bin/bash # 登录数据库修改root密码 mysql -u root -p ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
5 添加远程登录用户
CREATE USER 'testuser'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'%';