mysql5.6批量設(shè)置表ROW_FORMAT =DYNAMIC問(wèn)題
mysql5.6批量設(shè)置表ROW_FORMAT =DYNAMIC
安裝某個(gè)軟件的時(shí)候提示
ERROR 1071 (42000): Specified key was too long; max key length is 767 bytes
后來(lái)發(fā)現(xiàn)是一些參數(shù)設(shè)置的問(wèn)題,不知道m(xù)ysql5.7會(huì)不會(huì)出現(xiàn)這個(gè)問(wèn)題,
沒(méi)有測(cè)試大家可以直接升級(jí)到mysql5.7看能不能解決
解決方法
1: 系統(tǒng)變量innodb_large_prefix為ON
2: 系統(tǒng)變量innodb_file_format為Barracuda
3: ROW_FORMAT為DYNAMIC或COMPRESSED
將這三個(gè)變量設(shè)置為以上狀態(tài):
分別可以使用命令
1)show variables like '%innodb_large_prefix%';
2)show variables like '%innodb_file_format%';
3)SELECT table_schema, table_name, row_format FROM information_schema.TABLES
WHERE table_schema IN ( '數(shù)據(jù)庫(kù)名') 【可以加篩選命令不是Dynamic的表 AND information_schema.TABLES.row_format <> 'Dynamic'】
查看參數(shù)狀態(tài)如果參數(shù)狀態(tài)不正確可以使用
set global innodb_large_prefix=on; set global innodb_file_format=Barracuda;
兩個(gè)命令完成
問(wèn)題是第三個(gè)修改比較麻煩,mysql5.6沒(méi)有全局設(shè)置表為ROW_FORMAT為DYNAMIC或COMPRESSED的屬性,所以得一個(gè)個(gè)修改,后來(lái)想了個(gè)辦法,
可以這樣嘗試操作:
1)可以通過(guò)命令
篩選出不等于Dynamic的表并生成更新語(yǔ)句
SELECT CONCAT( "ALTER TABLE `", table_schema, "`.`", table_name, "` ROW_FORMAT =DYNAMIC ;" ) FROM information_schema.TABLES WHERE table_schema IN ( '數(shù)據(jù)庫(kù)名' ) AND information_schema.TABLES.row_format <> 'Dynamic'
將生成的語(yǔ)句批量執(zhí)行就可以了!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL時(shí)間盲注的五種延時(shí)方法實(shí)現(xiàn)
MySQL時(shí)間盲注主要有五種,sleep(),benchmark(t,exp),笛卡爾積,GET_LOCK() RLIKE正則,本文就主要介紹了這五種方法,感興趣的可以了解一下2021-05-05MySQL數(shù)據(jù)庫(kù)聚合函數(shù)與分組查詢舉例詳解
在MySQL中聚合函數(shù)和分組查詢經(jīng)常一起使用,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)聚合函數(shù)與分組查詢的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01MySQL 配置免密碼登錄的問(wèn)題記錄(mysql_config_editor Configurati
這篇文章主要介紹了MySQL 配置免密碼登錄的問(wèn)題記錄(mysql_config_editor Configuration),本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08mysql自動(dòng)插入百萬(wàn)模擬數(shù)據(jù)的操作代碼
這篇文章主要介紹了mysql自動(dòng)插入百萬(wàn)模擬數(shù)據(jù)的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10