docker mysql 数据持久化到本地、设置不区别表名大小写

Docker MySQL 把数据存储在本地目录,很简单,只需要映射本地目录到容器即可

1、加上-v参数

$ docker run -d -e MYSQL_ROOT_PASSWORD=admin --name mysql -v /data/mysql/data:/var/lib/mysql -p 3306:3306 mysql

还可以指定配置文件

docker run -d -e MYSQL_ROOT_PASSWORD=admin --name mysql -v /data/mysql/my.cnf:/etc/mysql/my.cnf -v /data/mysql/data:/var/lib/mysql -p 3306:3306 mysql

这样,即可修改配置文件,还能把数据存在本地目录,一举两得,-v 参数可以多次使用,每次映射一个目录,通过这种方式,很容易进行配置。。

docker run -d -e MYSQL_ROOT_PASSWORD=admin --name mysql -v /data/mysql/my.cnf:/etc/mysql/my.cnf -v /data/mysql/data:/var/lib/mysql -p 3306:3306 mysql --lower_case_table_names=1

解释如下:

-d  容器在后台运行

-e MYSQL_ROOT_PASSWORD=admin    配置mysql root的密码

-v   对mysql 的配置文件和数据存储路径进行映射到宿主机,对数据持久化

-p   端口映射

--name  定义容器的名称

--lower_case_table_names=1    定义数据库不区分表名大小写

网友的步骤:

  1. 拉取mysql 镜像

    docker pull mysql

  2. 运行mysql

docker run

--net=host

--restart=always

--privileged=true

-v /usr/docker_dat/mysql/data:/var/lib/mysql

--name mysql

-p 3306:3306

-e MYSQL_ROOT_PASSWORD=root

-v /etc/localtime:/etc/localtime:ro

-d mysql --lower_case_table_names=1

3. 参数说明

--restart=always 跟随docker启动

--privileged=true 容器root用户享有主机root用户权限

-v 映射主机路径到容器

-e MYSQL_ROOT_PASSWORD=root 设置root用户密码

-d 后台启动

--lower_case_table_names=1 设置表名参数名等忽略大小写

-v /etc/localtime:/etc/localtime:ro   设置容器的时间与宿主机同步

时间: 2024-10-13 11:55:49

docker mysql 数据持久化到本地、设置不区别表名大小写的相关文章

Docker 容器数据 持久化(系统学习Docker05)

写在前面 本来是可以将数据存储在 容器内部 的.但是存在容器内部,一旦容器被删除掉或者容器毁坏(我亲身经历的痛,当时我们的大数据平台就是运行在docker容器内,有次停电后,不管怎样容器都起不来.以前的同事也没有将数据映射到外面 .搞得最后我们重新导的数据,痛的领悟啊~~). 再就是如果不将数据映射出来 ,比如要想使用容器内部的web日志,也是比较难搞,反正不就是其它容器/服务不是很方便. 大体上来说,一般只要使用Docker都会将 重要的数据 进行持久化. 本文有任何问题,欢迎留言指正~ Do

自己学Docker:5.Docker的数据持久化之数据卷

首先,别忘记之前的两个问题: 1. 如何保存我们在容器里的修改? 2. 如果apt-get如果不能安装时,如何在Docker中安装软件? 删除镜像命令 在此之前,先记一个命令, sudo docker rm ID/NAME 即删除创建的镜像.如 现在删除id为"cc8a23b1d624"的镜像. sudo docker rm cc8a23b1d624 可以看到,id为cc8a23b1d624的镜像被删除了. 而且可以发现,本地的/var/lib/docker/containers目录下

linux下mysql表名大小写问题

近日,新mysql实例导入sql数据时,发现比老的mysql多了100+张表,最终发现是mysql表名大小写所致:很简单的问题却耽误很长时间,在此记录一下,以防再犯同样的错误: 1.Linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写:2.用root帐号登录后,在/etc/my.cnf中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写:lower_case_table_names参数详解:l

PHP+Mysql+easyui点击左侧tree菜单对应表名右侧动态生成datagrid加载表单数据(二)

关于tree菜单生成,参考我的另一篇博文地址tree 菜单 实现功能:点击左侧tree菜单中的table,右侧通过datagrid加载出该表对用的所有数据 难点:获取该表的所有列名,动态生成datagrid,并加载数据 解决办法: 使用tree菜单的onClick事件: $('#tree').tree( { url:'tree_getData.php', onClick:function(node){ //判断点击的节点是否是子节点是子节点就创建datagrid,否则就return打开这个节点

linux mysql不区分表名大小写配置

原来Linux下的MySQL默认是区分表名大小写的,通过如下设置,可以让MySQL不区分表名大小写:1.用root登录,修改 /etc/my.cnf:2.在[mysqld]节点下,加入一行: lower_case_table_names=1(值为0时区分大小写)3.重启MySQL即可: MySQL在Linux下数据库名.表名.列名.别名大小写规则是这样的:1)数据库名与表名是严格区分大小写的:2)表的别名是严格区分大小写的:3)列名与列的别名在所有的情况下均是忽略大小写的:4)变量名也是严格区分

[转]mysql在windows下支持表名大小写,lower_case_table_names

windows下mysql默认是不支表名大小写的,也就是表名大小写不敏感.用phpmyadmin创建的驼峰式表名,全部被强制成小写.mysql表名大小写敏感的参数: lower_case_table_names. 在[mysqld]下加上lower_case_table_names=0即可. ### [mysqld] lower_case_table_names=0 ### win下默认值为1,就是说mysql会把表名主动lower. [转]mysql在windows下支持表名大小写,lower

mysql在windows下支持表名大小写,lower_case_table_names

原文:mysql在windows下支持表名大小写,lower_case_table_names windows下mysql默认是不支表名大小写的,也就是表名大小写不敏感. 用phpmyadmin创建的驼峰式表名,全部被强制成小写. mysql表名大小写敏感的参数:lower_case_table_names. Windows2012 下的C:\ProgramData\MySQL\MySQL Server 5.6\my.ini 文件 在[mysqld]下加上lower_case_table_nam

mysql表名大小写问题

           默认情况下,MySQL 将以小写保存表名.一个避免 MySQL 服务器小写问题方法是以 -O lower_case_table_names=0 启动 mysqld.默认情况下,这个选项 在 Windows 是 1 和在 Unix 是 0.如果 lower_case_table_names 是 1,MySQL 将所有在存储和查找的表名转换为小写.请注意,如果你改变此选项,你需要在启动 mysqld 前转换你的旧表名为小写.需要修改的是在[mysqld]下加上lower_cas

设置centos7中的mysql5.7不区分表名大小写有关操作

1.#which mysqld          //查看mysql的命令路径 /usr/sbin/mysqld 2.#/usr/sbin/mysqld --verbose --help | grep -A 1 'Default options'       //查看mysql读取的默认配置文件位置 /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf (多个配置文件,前面的文件不存在才会读取后面的) 3.#vim /etc/my.cnf