从官方仓库获取mysql 5.7的镜像:
docker pull mysql:5.7
有两种创建mysql容器的方法。
方法一
直接运行以下命令,将本机的3307端口映射到容器的3306端口上,并设置root密码为“123”。
docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123 -d mysql:5.7
之后就可以通过以下命令连接数据库了:
mysql -h127.0.0.1 -P3307 -uroot -p123
注:这里我如果忽略-h选项,即默认使用localhost进行登陆,但却登不上去,不不知道怎么回事,在网上也没找到答案。
以下命令却无法连接数据库:
mysql -hlocalhost-P3307 -uroot -p123
# 或
mysql -P3307 -uroot -p123
方法二:
参考:https://blog.youkuaiyun.com/weixin_40461281/article/details/92610876
将容器中关于mysql的相关目录映射到本机上:
docker run -p 3307:3306 --name mysql -v /root/mysql/conf:/etc/mysql/conf.d -v /root/mysql/logs:/logs -v /root/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
其他和方法一一样。
此外,进入mysql容器命令如下:
docker exec -it [container_id] /bin/bash
修改mysql用户密码:
# 使用mysql数据库
use mysql
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123';
# 或
update user set authentication_string=password('123') where user='root';
5.7版本已经不再使用password来作为密码的字段了 而改成了authentication_string
新增用户:
create user 'apple'@'%' identified by '123';