mysql 改myisam_将mysql从MyISAM更改为INNODB

今天更新django中的表字段,由于mysql从5.1升级到5.7。以前的外键关联必须从MYISAM改新为INNODB才可以继续。

过程有点刺激,但还好,只要想清楚了过程,提前作好备份,就没啥大问题。

一,django里的mysql配置:

DATABASES = {

'default': {

'ENGINE': 'django.db.backends.mysql',

'NAME': 'PDB',

'USER': 'user',

'PASSWORD': 'xxxx',

'HOST': '1.2.3.4',

'PORT': '3306',

'OPTIONS': {"init_command": "SET default_storage_engine=INNODB;"},

},

}

二,查看现在库里表的存储引擎

SELECT table_name, table_type, engine FROM information_schema.tables

WHERE table_schema = 'xxxxDB' ORDER BY table_name DESC;

三,生成更改所有数据表引擎的mysql语句

SELECT CONCAT( 'ALTER TABLE ', TABLE_NAME, ' ENGINE=InnoDB;' )

FROM information_schema.tables

WHERE table_schema = 'xxxxDB';

四,将这些语句放到mysql里执行一次

...

ALTER TABLE A ENGINE=InnoDB;

ALTER TABLE B ENGINE=InnoDB;

ALTER TABLE C ENGINE=InnoDB;

ALTER TABLE H ENGINE=InnoDB;

ALTER TABLE D ENGINE=InnoDB;

ALTER TABLE E ENGINE=InnoDB;

...

五,在my.cnf里将默认引擎设置为innodb,然后,使用show engine,即可看到mysql的默认存储引擎了。

show engine

六,有了以上操作之后,在django里使用makemigrations,migrate命令,就没啥问题了。如果上面步骤没操作出问题,记得先复原数据库,再操作。

标签:ENGINE,INNODB,MyISAM,mysql,InnoDB,TABLE,table,ALTER

来源: https://www.cnblogs.com/aguncn/p/11084088.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值