前景:之前部署的mysql,由于是版本问题,没有设置远程访问权限,然后贸然修改了字段类型,导致重启容器后无法使用密码登陆到mysql内部。
因为我之前是讲容器挂在到Linux的其他地方了(/data/mysql)
所以我在`conf`文件夹下找到`my.cnf`文件
在`my.cnf`文件下加入下面的内容
#跳过密码验证 skip-grant-tables
skip-grant-tables
然后重启容器,就可以直接进入了,然后可以取修改一下密码
docker restart mysql8
docker exec -it mysql8 /bin/bash
mysql -uroot
但是不幸的是,在这个开启跳过密码,是无法修改密码的。
所以重新想办法,将原先的数据库打成可执行的sql脚本(**.sql)
在容器内部(不是mysql内部),输入下面
mysqldump -uroot --databases reggie >/var/lib/mysql/reggie.sql
因为我部署的mysql是挂在 `/data/mysql8`下的,所以我直接在`/data/mysql8/data`文件夹下可找到相应`reggie.sql`文件,如果没有挂在需要复制出来。
得到sql脚本,然后使用navicat工具去重建数据库了。