mysql创建表一直错误_mysql启动、创建用户、建表过程中几个错误的解决方法

1.mysql启动

报错日志如下:

0818b9ca8b590ca3270a3433284dd417.png

解决方法:

删除/var/lib/mysql目录下ibdata1、ib_logfile0、ib_logfile1三个文件,重新启动,启动日志显示如下

0818b9ca8b590ca3270a3433284dd417.png

2.root创建新用户

(1)mysql shell报错:

ERROR 2006 (HY000): MySQL server has gone away

(2)后台报错:

0818b9ca8b590ca3270a3433284dd417.png

解决方法:

linux shell 中执行如下命令:

mysql_upgrade -u root -p,根据提示,输入mysql 的root 密码,控制台输出如下信息:

0818b9ca8b590ca3270a3433284dd417.png

修复完成

重新创建用户,成功。

说明:

(3)建表

hive元数据建表中报错如下:

ERROR Datastore.Schema (Log4JLogger.java:error(115)) - An exception was thrown while adding/validating class(es) : Specified key was too long; max key length is 767 bytes

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes

建表语句:

CREATE TABLE `SD_PARAMS`

(

`SD_ID` BIGINT NOT NULL,

`PARAM_KEY` VARCHAR(256) BINARY NOT NULL,

`PARAM_VALUE` VARCHAR(4000) BINARY NULL,

CONSTRAINT `SD_PARAMS_PK` PRIMARY KEY (`SD_ID`,`PARAM_KEY`)

) ENGINE=INNODB

解决方法:

mysql命令行执行如下语句修改对应数据库字符编码:

alter database   character set  latin1

重新hive远程连接建表,成功。

另外,在mysql中修改字符集也可在表级别(table)完成,而不必修改数据库级(database)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL,创建索引可以通过在CREATE TABLE语句使用INDEX关键字来实现。以下是几个示例: 1. 创建唯一索引: ``` CREATE TABLE address ( id INT(11) AUTO_INCREMENT PRIMARY KEY NOT NULL, name VARCHAR(50), address VARCHAR(200), UNIQUE INDEX address(id ASC) ); ``` 在上述示例,使用UNIQUE INDEX关键字在id字段上创建了一个唯一索引。 2. 创建普通索引: ``` CREATE TABLE score ( id INT(11) AUTO_INCREMENT PRIMARY KEY NOT NULL, name VARCHAR(50) NOT NULL, math INT(5) NOT NULL, English INT(5) NOT NULL, Chinese INT(5) NOT NULL, INDEX(id) ); ``` 在上述示例,使用INDEX关键字在id字段上创建了一个普通索引。 3. 创建单列索引: ``` CREATE TABLE telephone ( id INT(11) PRIMARY KEY AUTO_INCREMENT NOT NULL, name VARCHAR(50) NOT NULL, tel VARCHAR(50) NOT NULL, INDEX tel_num(tel(20)) ); ``` 在上述示例,使用INDEX关键字在tel字段上创建了一个单列索引。 4. 创建多列索引: ``` CREATE TABLE table_name ( column1 data_type, column2 data_type, column3 data_type, INDEX index_name (column1, column2, column3) ); ``` 在上述示例,使用INDEX关键字在多个列上创建了一个多列索引。 需要注意的是,索引的创建可以在CREATE TABLE语句完成,也可以在已存在的表上使用ALTER TABLE语句来添加索引。 #### 引用[.reference_title] - *1* *2* *3* [MySQL——在创建数据表时创建索引](https://blog.csdn.net/qq_41573234/article/details/80250279)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值