使用CM自带的脚本,在MySQL中创建CM库

[root@hadoop3 cm-5.16.1]#

/opt/module/cm/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hhadoop3 -uroot -p123456 --scm-host hadoop3 scm scm scm

参数说明

-h:Database host

-u:Database username

-p:Database Password

--scm-host:SCM server's hostname

ERROR com.cloudera.enterprise.dbutil.DbCommandExecutor - Unable to create/drop a table.

 

 解决方法:关闭mysql的gtid

【报错原因】

ERROR1786是由于开启了enforce_gtid_consistency=true功能导致的,MySQL官方解释说当启用enforce_gtid_consistency功能的时候,MySQL只允许能够保障事务安全,并且能够被日志记录的SQL语句被执行,像create table ... select 和 create temporarytable语句,以及同时更新事务表和非事务表的SQL语句或事务都不允许执行

db1 [test] [23:28:28]> show variableslike 'ENFORCE_GTID_CONSISTENCY';
 
+--------------------------+-------+
 
| Variable_name  | Value |
 
+--------------------------+-------+
 
| enforce_gtid_consistency | ON |
 
+--------------------------+-------+

  【解决方法】

由于enforce_gtid_consistency参数是只读的,所以必须重启MySQL服务才能是配置生效。

尝试在线动态修改时的报错:

db1 [test] [23:37:56]> set globalenforce_gtid_consistency=true;
ERROR 1238 (HY000): Variable'enforce_gtid_consistency' is a read only variable

  

解决办法,关闭GTID模式:

my.cnf里面修改参数为:

gtid_mode = OFF
enforce_gtid_consistency = OFF

重启MySQL,再次创建成功:

mysql> show variables like '%gtid_mode%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| gtid_mode   | OFF  |
+---------------+-------+
1 row in set (0.01 sec)
 
mysql> show variables like '%enforce_gtid_consistency%';
+--------------------------+-------+
| Variable_name      | Value |
+--------------------------+-------+
| enforce_gtid_consistency | OFF  |
+--------------------------+-------+
1 row in set (0.01 sec)
 
mysql> create table t1 as select * from BS_CONT;
Query OK, 0 rows affected (0.12 sec)

  

posted on 2020-08-05 11:24  大羽治不了水  阅读(912)  评论(0编辑  收藏  举报