Docker 搭建mysql5.7
下载镜像
docker pull mysql5.7
启动MySQL5.7
[root@thz01 ~]# docker run -p 3309:3306 --name mysql -v /mydata/docker/mysql/conf:/etc/mysql -v /mydata/docker/mysql/logs:/var/log/mysql -v /mydatadocker/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7
进入容器
[root@thz01 ~]# docker exec -it 容器ID /bin/bash
进入 mysql
[root@thz01 ~]# mysql -uroot -p root
让mysql可以远程访问
grant all privileges on *.* to root@'%' identified by "root123";
上述可能登录拒绝
Access denied for user 'root'@'localhost' (using password: YES)
1.将MySQL 开启免密登录
2.修改MySQL密码,这个需要使用复杂密码:
***********************************第一步开始****************************************
因为运行MySQL 我们做了挂载,所以在宿主机新建一个my.cnf配置文件,它就会到容器中使用;
[root@thz01 ~]# cd /mydata/docker/mysql/conf/
[root@thz01 conf]# vim my.cnf
使用 vi 编写 :skip-grant-tables 然后重启Docker MySQL
[root@thz01 conf]# docker restart mysql
***********************************第一步结束****************************************
2.修改MySQL密码
注意: *使用以前的方式(update user set password=password('123456') where user='root')修改密码时会修改失败,会提示:Found invalid password for user: 'root@localhost'; Ignoring user*
1) use mysql;
2) update user set authentication_string='' where user='root';// 如果这个字段有值,先置为空,之前的版本密码字段是password
3) flush privileges;// 刷新权限表
4) 执行select user,host from user;// 查看用户及host,方便后续修改
5) ALTER user 'root'@'%' IDENTIFIED BY 'root@123';// 修改root 密码
6 ) ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root@123';
# 刷新权限
7 ) FLUSH PRIVILEGES;
# 再查询用户及加密方式已修改
8) select host, user, plugin from user;