个人博客地址:Ranger 2.1.0 Admin安装 | 一张假钞的真实世界
Creating MySQL user ranger2 failed
2021-07-01 18:44:53,480 [E] Creating MySQL user ranger2 failed..
2021-07-01 18:44:53,496 [E] DB schema setup failed! Please contact Administrator.
原因是Ranger安装程序默认会使用MySQL的root账号创建所需要的账号,也就是DBA过程。如果不需要安装程序自动创建,则将install.properties
中的以下配置前的#号去掉:
setup_mode=SeparateDBA
Specified key was too long; max key length is 767 bytes
- 第一种报错:
Error executing: CREATE TABLE `x_portal_user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `create_time` datetime DEFAULT NULL, `update_time` datetime DEFAULT NULL, `added_by_id` bigint(20) DEFAULT NULL, `upd_by_id` bigint(20) DEFAULT NULL, `first_name` varchar(1022) DEFAULT NULL, `last_name` varchar(1022) DEFAULT NULL, `pub_scr_name` varchar(2048) DEFAULT NULL, `login_id` varchar(767) DEFAULT NULL, `password` varchar(512) NOT NULL, `email` varchar(512) DEFAULT NULL, `status` int(11) NOT NULL DEFAULT '0', `user_src` int(11) NOT NULL DEFAULT '0', `notes` varchar(4000) DEFAULT NULL, `other_attributes` varchar(4000) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `x_portal_user_UK_login_id` (`login_id`), UNIQUE KEY `x_portal_user_UK_email` (`email`), KEY `x_portal_user_FK_added_by_id` (`added_by_id`), KEY `x_portal_user_FK_upd_by_id` (`upd_by_id`), KEY `x_portal_user_cr_time` (`create_time`), KEY `x_portal_user_up_time` (`update_time`), KEY `x_portal_user_name` (`first_name`(767)), KEY `x_portal_user_email` (`email`), CONSTRAINT `x_portal_user_FK_added_by_id` FOREIGN KEY (`added_by_id`) REFERENCES `x_portal_user` (`id`), CONSTRAINT `x_portal_user_FK_upd_by_id` FOREIGN KEY (`upd_by_id`) REFERENCES`x_portal_user` (`id`) ) ROW_FORMAT=DYNAMIC;
java.sql.SQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes
SQLException : SQL state: 42000 java.sql.SQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes ErrorCode: 1071
2021-07-02 10:44:54,411 [E] ranger_core_db_mysql.sql file import failed!
修改对应字段的长度可以解决。注意UTF8
每个字符4个字节。
- 第二种报错:
Error executing: CREATE TABLE `x_portal_user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `create_time` datetime DEFAULT NULL, `update_time` datetime DEFAULT NULL, `added_by_id` bigint(20) DEFAULT NULL, `upd_by_id` bigint(20) DEFAULT NULL, `first_name` varchar(128) DEFAULT NULL, `last_name` varchar(1022) DEFAULT NULL, `pub_scr_name` varchar(2048) DEFAULT NULL, `login_id` varchar(128) DEFAULT NULL, `password` varchar(512) NOT NULL, `email` varchar(128) DEFAULT NULL, `status` int(11) NOT NULL DEFAULT '0', `user_src` int(11) NOT NULL DEFAULT '0', `notes` varchar(4000) DEFAULT NULL, `other_attributes` varchar(4000) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `x_portal_user_UK_login_id` (`login_id`), UNIQUE KEY `x_portal_user_UK_email` (`email`), KEY `x_portal_user_FK_added_by_id` (`added_by_id`), KEY `x_portal_user_FK_upd_by_id` (`upd_by_id`), KEY `x_portal_user_cr_time` (`create_time`), KEY `x_portal_user_up_time` (`update_time`), KEY `x_portal_user_name` (`first_name`(767)), KEY `x_portal_user_email` (`email`), CONSTRAINT `x_portal_user_FK_added_by_id` FOREIGN KEY (`added_by_id`) REFERENCES `x_portal_user` (`id`), CONSTRAINT `x_portal_user_FK_upd_by_id` FOREIGN KEY (`upd_by_id`) REFERENCES `x_portal_user` (`id`) ) ROW_FORMAT=DYNAMIC;
java.sql.SQLException: Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys
SQLException : SQL state: HY000 java.sql.SQLException: Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys ErrorCode: 1089
2021-07-02 11:51:23,763 [E] ranger_core_db_mysql.sql file import failed!
去掉prefix key
的定义即可。
修改后的建表语句如下:
CREATE TABLE `x_portal_user` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`create_time` datetime DEFAULT NULL,`update_time` datetime DEFAULT NULL,`added_by_id` bigint(20) DEFAULT NULL,`upd_by_id` bigint(20) DEFAULT NULL,`first_name` varchar(128) DEFAULT NULL,`last_name` varchar(1022) DEFAULT NULL,`pub_scr_name` varchar(2048) DEFAULT NULL,`login_id` varchar(128) DEFAULT NULL,`password` varchar(512) NOT NULL,`email` varchar(128) DEFAULT NULL,`status` int(11) NOT NULL DEFAULT '0',`user_src` int(11) NOT NULL DEFAULT '0',`notes` varchar(4000) DEFAULT NULL,`other_attributes` varchar(4000) DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY `x_portal_user_UK_login_id` (`login_id`),UNIQUE KEY `x_portal_user_UK_email` (`email`),KEY `x_portal_user_FK_added_by_id` (`added_by_id`),KEY `x_portal_user_FK_upd_by_id` (`upd_by_id`),KEY `x_portal_user_cr_time` (`create_time`),KEY `x_portal_user_up_time` (`update_time`),KEY `x_portal_user_name` (`first_name`),KEY `x_portal_user_email` (`email`),CONSTRAINT `x_portal_user_FK_added_by_id` FOREIGN KEY (`added_by_id`) REFERENCES `x_portal_user` (`id`),CONSTRAINT `x_portal_user_FK_upd_by_id` FOREIGN KEY (`upd_by_id`) REFERENCES `x_portal_user` (`id`)
) ROW_FORMAT=DYNAMIC;
对整个建表脚本中的SQL都需要对应的修改。