背景
项目上我们使用docker安装mysql,项目启动的时候需要利用sql语句初始化数据。
直接在实体上是识别不到mysql命令的。
实现方式
实现方式1:在docker容器内部执行sql语句
1. 将sql文件上传到容器内
docker cp /root/1.sql d5:/home/
说明:将Linux实体机上指定位置1.sql文件拷贝至容器内部/home位置。 d5为mysql容器id,当然此处也可以用容器的名称,比较方便好记。
出现上图说明拷贝成功
2. 进入mysql容器内部查看文件是否已经存在
docker exec -it d5 /bin/bash
先进入容器
再查看根目录下存在哪些目录
进入/home路径
输入ls命令查看文件:发现1.sql文件已经拷贝进来了
3. mysql登录,执行sql文件
#登录mysql,-u用户名,-p密码
mysql -uroot -p123456;
#选择mysql数据库
use mysql;
登录mysql
查看数据库: show database;
切换数据库
实现方式2:容器外执行sql
docker exec -i d5 mysql -uroot -proot mysql < /root/1.sql;
比较简单,执行一句命令即可。d5是容器id,当然此处也可以用容器的名称,比较方便好记。