一、docker中修改MySQL8.0密码
首先,进入MySQL容器:
$ docker exec -it mysql8.0 /bin/bash
- 1
然后进入MySQL:
mysql -uroot -p
- 1
网上查了好久才找到,修改命令也是五花八门:
1. (试了没用,xshell 能登陆,但远程访问不了,还有些说在配置文件 my.cnf 中加 skip-grant-tables,也没什么用处 )
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
flush privileges;
-
(这种改了连数据库都进不去,改的根本就不是root密码,进入数据库还是之前的密码)
ALTER USER ‘root’@’%’ IDENTIFIED BY ‘new密码’ PASSWORD EXPIRE NEVER; -
(这种改了和第一种一样)
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘new密码’;
还有很多,就不一一列举了。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
经过自己的不断测试,终于改成功了。
先进入 mysql 数据库:
要借助上面列举中的两条命令来修改密码:
1. ALTER USER 'root'@'%' IDENTIFIED BY 'mysql1024.' PASSWORD EXPIRE NEVER;
2. ALTER USER 'root'@'localhost' IDENTIFIED BY 'mysql1024.';
- 1
- 2
退出重启一下:
试一下:
远程连接试一下:
成功!
二、docker中主机与容器之间复制文件
# 首先获取容器的长ID
docker inspect -f '{{.ID}}' container_name
# 从主机向容器中复制文件
sudo docker cp host_path containerID:container_path
# 从容器向主机中复制文件
sudo docker cp containerID:container_path host_path
- 1
- 2
- 3
- 4
- 5
- 6
三、docker 中MySQL8.0 导出导入sql脚本
导出:
首先进入MySQL8.0容器,找到安装mysql-8.0的目录,不是进入mysql中:
1.导出数据和结构:
mysqldump -u用户名 -p 数据库名 > 数据库名.sql
2.只导出结构:
mysqldump -u用户名 -p -d 数据库名 > 数据库名.sql
- 1
- 2
- 3
- 4
导入:
先根据上面二中的命令将 sql 脚本复制到容器中,然后进入数据库,先创建数据库:
然后再导入:
# 1.获取容器长 ID
docker inspect -f '{{.ID}}' mysql8.0
# 2.将sql脚本复制到容器中
sudo docker cp host_path containerID:container_path
# 3.进入容器,进入mysql,创建数据库,并 use 选中,再导入
source /tmp/abc.sql
- 1
- 2
- 3
- 4
- 5
- 6