CDH安裝過程中出現的問題(二)
阿新 • • 發佈:2020-08-05
使用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)