docker 下修改 mysql sql_mode和配置文件

原文:docker 下修改 mysql sql_mode和配置文件

打开PowerShell

首先创建mysql容器,这里我们指定使用mysql5.7的版本

docker run -d -p 3306:3306 --name mysql-docker -e MYSQL_ROOT_PASSWORD=root mysql:5.7

创建成功,查看一下运行状态

docker ps

?

可以看到我们的容器正在运行中,现在进入容器,查看一下配置文件

?

docker exec -it mysql-docker /bin/bash
cat /etc/mysql/my.cnf

可以看到这里包含了两个目录下的文件,查看一下,mysql.conf.d下,发现有我们需要更改的文件

cat /etc/mysql/mysql.conf.d/mysqld.cnf

?

可以看到这里并没有 sql_mode的配置,说明mysql使用了默认的配置,我们可以进入mysql查看一下,

?

mysql -u root -p 

回车输入我们创建容器时设置的密码,也就是root,进入mysql?控制台,输入

show variables like ‘%sql_mode‘;

查看默认 sql_mode配置,可以看到默认的是

这个时候我们就可以去更改配置文件了,输入

exit?退出mysql控制台,

然后我们再查看一下这个配置文件

cat /etc/mysql/mysql.conf.d/mysqld.cnf 

把输出的内容复制一下,我们在本地新建一个同名文件,把内容粘贴进去,然后在 [mysqld]下面添加 sql_mode =?你的配置,比如:

把这个文件保存一下,

然后切换到命令行,输入exit退出容器,

停止并删除docker-mysql容器,

docker stop mysql-docker
docker rm mysql-docker

然后我们修改下docker run?语句,把我们本地的配置文件映射覆盖到容器内部,重新配置一下容器

docker run -d -p 3306:3306 -v D:/mysql/conf/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -v D:/mysql/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=root --name mysql-docker mysql:5.7 

然后我们按照一开始的步骤,重新进入一下容器

docker exec -it mysql-docker /bin/bash

进入mysql

mysql -u root -p root

查看sql_mode是否被修改

 show variables like ‘%sql_mode‘;

可以看到已经修改成功

大功告成,由于配置文件是由我们本地映射过去的,所以如果还需要改什么配置的话,直接更改我们本地的配置文件就好了

?

ps: 以上命令都是在powershell中完成的,cmd有可能不支持创建容器和进入容器的代码,docker?版本 18.03.1 for win

原文地址:https://www.cnblogs.com/lonelyxmas/p/10591190.html

时间: 2024-08-13 18:15:11

docker 下修改 mysql sql_mode和配置文件的相关文章

docker下配置mysql 主从

本机docker下配置mysql主从 首先安装docker mysql容器 $ docker pull mysql:5.6 拉取两个相同版本mysql 分别启动mysql 并设置root用户密码为admin: //主mysql docker run -d -e MYSQL_ROOT_PASSWORD=admin --name mysql-master -v /Volumes/docker/mysql/my-m.cnf:/etc/mysql/my.cnf -p 3307:3306 mysql:5.

linux下修改MySQL root密码后数据库消失

Linux系统下如果没有通过password()函数修改mysql的root密码就会导致mysql数据库消失.有些人可能不知道而直接修改了mysql的root密码,于是产生了mysql数据库消失的问题,这个时候该怎么处理呢? 可以用下面的办法解决: 1.修改mysql数据库目录配置文件:my.cnf(或my.ini) [mysqld]下添加: skip-grant-tables 2.重启mysql服务,然后用mysql 登录. 3.进入后,可以看到,mysql数据库已呈现,然后修改密码: upd

ubantu 下 修改mysql 默认编码

启动mysql后,以root登录mysql [email protected]:~# mysql -uroot -proot mysql> show variables like 'character%'; #执行编码显示+--------------------------+----------------------------+| Variable_name | Value |+--------------------------+----------------------------+

Linux学习之CentOS(二十)--CentOS6.4下修改MySQL编码方法

但是当我们在试图对数据库中的数据进行备份或者将sql文件导入到我们的数据库时可能就会碰到编码的问题,在windows下安装mysql时我们可以在安装的时候就选择好整个数据库的编码方式(通常设置成utf8),在linux下安装mysql的时候就不会有图形界面的安装,所以这篇随笔将记录一下如何在Linux系统下修改MySQL编码的方法 默认登陆到mysql后,我们首先可以通过 show variables like 命令来查看系统变量 例如我们可以通过  SHOW VARIABLES LIKE '%

mac下修改mysql-root密码-各种权限问题解决

官方资料:http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html#resetting-permissions-unix 还有一个值得参考的mysql安装,与python-mysql安装博客http://hearrain.com/2011/01/498 据官方文档说, For example, if you run the server using the mysql login account, you should l

windows2003下修改mysql密码

1:进入cmd 2:命令:mysql -u root mysql -p 回车 输入密码: 3:use mysql; 4:命令:update user set password=password('新密码') where user='root'; //最后分号不要丢 5:命令:flush privileges; //刷新权限表 6:重启mysql windows2003下修改mysql密码,布布扣,bubuko.com

Windows下修改mysql root用户密码

忘记mysql的root密码是一件让人头疼的问题. 下面理一下Windows7下面重置root密码的方法. 1.打开一个命令行窗口:这儿必须注意,要使用管理员身份打开: 2.关闭mysql服务:net stop mysql 3.运行 mysqld --skip-grant-tables.该命令是让mysql启动的时候跳过授权表,这儿要注意的是网上很多地方都是 mysqld-nt,但新版本已经被mysqld取代了. 4.重开一个命令行窗口(用管理员身份打开), 运行命令: mysql -u roo

phpmyadmin登录报错外加linux下修改mysql登录密码

1.centos6.5中修改mysql的登录密码. [[email protected] ~]# mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 报错信息, 解决办法: [[email protected] ~]# /etc/init.d/mysqld stop 停止 mysqld:              

ubuntu10.04下修改mysql的datadir的问题

ubuntu10.04下修改mysql的datadir的问题 转自:http://blog.sina.com.cn/s/blog_4152a9f50100mq5i.html 昨天由于服务器空间告紧,需要将mysql的datadir从默认的/var/lib/mysql移到/usr/local/mysql下,操作如下: 1.修改了/etc/mysql/my.cnf,改为:datadir = /usr/local/mysql 2.cp -a /var/lib/mysql /usr/local/ 3./