在 AIO 期间执行 cmn-data-svc-ddl-dml-mysql-2.2-sql 时出错
Error executing cmn-data-svc-ddl-dml-mysql-2.2-sql during AIO
运行 脚本 acumos_k8s_prep.sh 在数据库初始化期间抛出错误:
+ sedi '1s/^/use acumos_cds;\n/' cmn-data-svc-ddl-dml-mysql-2.2.sql
+ sed --version
+ sed -i -- '1s/^/use acumos_cds;\n/' cmn-data-svc-ddl-dml-mysql-2.2.sql
+ mysql -h 172.16.83.xxx -P 30001 --user=xxx --password=xxx
ERROR 1364 (HY000) at line 587: Field 'MODIFIED_DATE' doesn't have a default value
++ fail
++ set +x
在第 587 行插入了一个条目
INSERT INTO C_ROLE (ROLE_ID, NAME, ACTIVE_YN, CREATED_DATE) VALUES ('12345678-abcd-90ab-cdef-1234567890ab', 'MLP System User', 'Y', CURRENT_TIMESTAMP());
进入tableC_ROLE
CREATE TABLE C_ROLE (
ROLE_ID CHAR(36) NOT NULL PRIMARY KEY,
NAME VARCHAR(100) NOT NULL,
ACTIVE_YN CHAR(1) DEFAULT 'Y' NOT NULL,
CREATED_DATE TIMESTAMP NOT NULL DEFAULT 0,
MODIFIED_DATE TIMESTAMP NOT NULL,
UNIQUE INDEX C_ROLE_C_NAME (NAME)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
MODIFIED_DATE确实没有默认值。
这可能是由于 MariaDB 版本 10.2+ docker 图像发生了变化,可能为 SQL 模式设置了严格。我的数据库没有显示这个失败,它有这个配置:
mysql> select @@sql_mode;
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
1 row in set (0.00 sec)
我为 DML 脚本提交了一个补丁,因此它为每个 MODIFIED_DATE 列提供了 NOW()。合并后,您可以直接从 https://gerrit.acumos.org 获取最新的脚本,或者等待 A.I.O.
的更新。
HTH
运行 脚本 acumos_k8s_prep.sh 在数据库初始化期间抛出错误:
+ sedi '1s/^/use acumos_cds;\n/' cmn-data-svc-ddl-dml-mysql-2.2.sql
+ sed --version
+ sed -i -- '1s/^/use acumos_cds;\n/' cmn-data-svc-ddl-dml-mysql-2.2.sql
+ mysql -h 172.16.83.xxx -P 30001 --user=xxx --password=xxx
ERROR 1364 (HY000) at line 587: Field 'MODIFIED_DATE' doesn't have a default value
++ fail
++ set +x
在第 587 行插入了一个条目
INSERT INTO C_ROLE (ROLE_ID, NAME, ACTIVE_YN, CREATED_DATE) VALUES ('12345678-abcd-90ab-cdef-1234567890ab', 'MLP System User', 'Y', CURRENT_TIMESTAMP());
进入tableC_ROLE
CREATE TABLE C_ROLE (
ROLE_ID CHAR(36) NOT NULL PRIMARY KEY,
NAME VARCHAR(100) NOT NULL,
ACTIVE_YN CHAR(1) DEFAULT 'Y' NOT NULL,
CREATED_DATE TIMESTAMP NOT NULL DEFAULT 0,
MODIFIED_DATE TIMESTAMP NOT NULL,
UNIQUE INDEX C_ROLE_C_NAME (NAME)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
MODIFIED_DATE确实没有默认值。
这可能是由于 MariaDB 版本 10.2+ docker 图像发生了变化,可能为 SQL 模式设置了严格。我的数据库没有显示这个失败,它有这个配置:
mysql> select @@sql_mode;
+--------------------------------------------+
| @@sql_mode |
+--------------------------------------------+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+--------------------------------------------+
1 row in set (0.00 sec)
我为 DML 脚本提交了一个补丁,因此它为每个 MODIFIED_DATE 列提供了 NOW()。合并后,您可以直接从 https://gerrit.acumos.org 获取最新的脚本,或者等待 A.I.O.
的更新。HTH