install mysql use docker

#mysql docker镜像
docker search mysql

docker pull centos/mysql-57-centos7
#创建文件夹 映射文件夹
mkdir -p /data/mysql/conf   /data/mysql/data  /data/mysql/log

mkdir -p /data/mysql/conf  (保存mysql配置文件)
mkdir -p /data/mysql/data  (保存mysql数据)
mkdir -p /data/mysql/log      (保存mysql日志)  

cd /data/mysql

解释: ~代表 用户文件夹, root用户为 /root echo ~ #输出查看

run mysql use docker

#增加配置文件,添加大小写不敏感设置,大小写敏感找不到表。。
vim /data/mysql/conf/my.cnf
# The MySQL  Server configuration file.
[mysqld]
lower_case_table_names = 1


sudo docker run -p 8000:8000  --name mysql -v /data/mysql/conf:/etc/mysql -v /data/mysql/log:/var/log/mysql -v /data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=12345678  -d mysql:5.7.25

#docker run --name mysql5.7 --restart=always -p 3307:3306 -v $pwd/conf.d:/etc/mysql/conf.d -v $pwd/mysql.conf.d:/etc/mysql/mysql.conf.d -v /root/mysql/data:/var/lib/mysql -v $pwd/log:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 -d centos/mysql5.7

--restart 标志会检查容器的退出代码,并据此来决定是否要重启容器,默认是不会重启。 --restart的参数说明 always:无论容器的退出代码是什么,Docker都会自动重启该容器。 on-failure:只有当容器的退出代码为非0值的时候才会自动重启。另外,该参数还接受一个可选的重启次数参数,--restart=on-fialure:5表示当容器退出代码为非0时,Docker会尝试自动重启该容器,最多5次。

-v 容器内的 /var/lib/mysql 在宿主机上 /www/mysql/datadir 做映射
-e MYSQL_ROOT_PASSWORD 初始密码 -p 将宿主机3306的端口映射到容器3306端口

mysql导入导出

前提:必须本机安装了mysql并且设置mysql环境变量,可以使用mysqldump和mysql命令

本地操作

mysqldump -uroot -ppwd -P3307 database > database.sql
mysql  -uroot -ppwd -P3307 database < database.sql 

解释:-u用户 -p密码 -P端口 默认3306 库名 文件名

远程操作

mysqldump -hXX.XX.XX.XXX -uroot -ppwd -P3307 database > database.sql (导出)
mysql -hXX.XX.XX.XXX -uroot -ppwd -P3307 database < database.sql (导入)

解释:其他同本地一样,追加-h服务地址 可以是ip,可以是域名

docker直接操作

#添加一个文件夹存放sql文件映射到容器
#导入导出
docker exec -it  mysql_server【docker容器名称/ID】 mysqldump -uroot -p123456-h127.0.0.1  test_db【数据库名称】 > /opt/sql_bak/test_db.sql【导出表格路径】
docker exec -i  mysql_server【docker容器名称/ID】 mysql -uroot -p123456 -h127.0.0.1 test_db_copy【数据库名称】 < /opt/sql_bak/test_db.sql【本地数据表路径】

#进入容器操作
docker exec -it mysql(容器名称) bash