【解决Docker Mysql 5.7版本下的 Field XXX doesn‘t have a default value问题】

解决Docker Mysql 5.7版本下的 Field XXX doesn‘t have a default value问题

MacM1版本下载Mysql 5.7版本docker镜像,我这边下载的Mysql镜像版本是ibex/debian-mysql-server-5.7(这个是适配MacM1版本镜像),安装后首先要开启外部访问授权对应命令如下:

登录数据库
mysql -u root -p
输入密码
mysql> use mysql;
查询host
mysql> select user,host from user;
4.创建host
如果没有"%"这个host值,就执行下面这两句:
mysql> update user set host='%' where user='root';
mysql> flush privileges;
5.授权用户
任意主机以用户root和密码mypwd连接到mysql服务器
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
mysql> flush privileges;

首先创建表:

CREATE TABLE `tt`  (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `age` int(11) NOT NULL COMMENT '年龄',
  `name` varchar(255) NOT NULL  COMMENT '名字',
  `activity_id` int(11) NOT NULL COMMENT '活动ID',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 300134 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '' ROW_FORMAT = Dynamic;

在执行插入语句的时候

insert into tt (name,age) values(1,2)

报错提示:Field 'activity_id' doesn‘t have a default value

这个问题本身是由于5.7版本默认开启了严格检查模式,需要我们修改mysql数据库的配置文件

由于我使用的是Mysql docker所以需要我们去到Docker容器里面修改

docker exec -it mysql-docker /bin/bash
cd /etc/mysql/conf.d/my.cnf
vim my.cnf

我这边对应的配置文件是my.cnf 在docker里面的文件路径对应的是/etc/mysql/conf.d/my.cnf(这个文件默认是空的)增加如下配置

[mysqld]
sql-mode=""

如果使用的dockerDesktop可以直接通过DockerDesk界面上直接修改文件可以参考截图

然后重启docker即可生效

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值