1. 程式人生 > 實用技巧 >CDH安裝過程中出現的問題(二)

CDH安裝過程中出現的問題(二)

使用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)