博客使用的是Docker容器安装mysql、nginx、php,由于mysql一开始设置3306不暴露公网,只能内部访问,无法用navicat类似工具快速完数据库迁移,这就有了这一篇记录
查看 Docker 容器 ID
docker ps
- 找到 MySql 的CONTAINER ID复制
将数据库文件导入容器
docker cp 文件路径 mysql容器id:/
- 例如:docker cp /root/blue.sql 5aead336082c:/
exec 命令对指定的容器执行 bash
docker exec -it 容器ID bash
- 例如:docker exec -it 5aead336082c bash
连接MySql
mysql -uroot -p
- 输入密码Enter password:
数据库创建使用导入
create databases 数据库名; use 数据库名; source 数据库文件;
- 成功!Query OK, 0 rows affected (0.00 sec)
创建用户
CREATE USER 'user'@'%' IDENTIFIED BY 'password'; CREATE USER '用户名'@'%' IDENTIFIED BY '密码';
- 查看用户 select user from mysql.user;
- 查看权限 show grants for root;
- 删除用户 Delete FROM mysql.user Where User='user';
- 修改用户密码 update mysql.user set password=password('新密码') where user='user';
授权
GRANT ALL PRIVILEGES ON `blue`.* TO 'name'@'%' GRANT ALL PRIVILEGES ON `授权的数据库`.* TO '用户名'@'%'
刷新权限
flush privileges;
这样就可以实现在无映射端口访问数据库了
导出数据库
docker exec -it 3d13977a2304 mysqldump -uroot -proot(密码) bluehe > /root/1.sql
本文 原创发布在 ©云心怀鹤。未经许可,谢绝转载。
最后更新 2024-02-25
大佬能出一篇教程吗
网上搜教程吧,步骤多。