您的位置:首页 > 数据库 > MySQL

mysql unsupport_db_table_row_format

2015-12-23 14:13 851 查看
mysql unsupport_db_table_row_format


Moodle in English: Converting InnoDB tables to Barracuda



Moodle in English: Converting InnoDB tables to Barracuda

.
Here is a Unix "screen-shot":
cd /path/to/your/moodle 

$ php admin/cli/mysql_compressed_rows.php 

Script for detection of row size problems in MySQL InnoDB tables.

By default InnoDB storage table is using legacy Antelope file format

which has major restriction on database row size.

Use this script to detect and fix database tables with potential data

overflow problems.

Options:

-i, --info Show database information

-l, --list List problematic tables

-f, --fix Attempt to fix all tables (requires SUPER privilege)

-s, --showsql Print SQL statements for fixing of tables

-h, --help Print out this help

Example:

$ sudo -u www-data /usr/bin/php admin/cli/mysql_compressed_rows.php -l

$ php admin/cli/mysql_compressed_rows.php -l 

mdl_data Compact (needs fixing)

mdl_data_fields Compact (needs fixing)

mdl_enrol_paypal Compact (needs fixing)

mdl_lti Compact (needs fixing)

mdl_user Compact (needs fixing)

mdl_user_info_field Compact (needs fixing)

$ php admin/cli/mysql_compressed_rows.php -f 

Cannot enable GLOBAL innodb_file_per_table setting, use --showsql option and execute the statements manually.!!! Error writing to database !!!

$ php admin/cli/mysql_compressed_rows.php -s 

Copy the following SQL statements and execute them using account with SUPER privilege:

USE moodle27;

SET SESSION sql_mode=STRICT_ALL_TABLES;

SET GLOBAL innodb_file_per_table=1;

SET GLOBAL innodb_file_format=Barracuda;

ALTER TABLE mdl_data ROW_FORMAT=Compressed;

ALTER TABLE mdl_data_fields ROW_FORMAT=Compressed;

ALTER TABLE mdl_enrol_paypal ROW_FORMAT=Compressed;

ALTER TABLE mdl_lti ROW_FORMAT=Compressed;

ALTER TABLE mdl_user ROW_FORMAT=Compressed;

ALTER TABLE mdl_user_info_field ROW_FORMAT=Compressed;

$ mysql -u root -p 

Enter password: [invisible] 

Welcome to the MySQL monitor. 

[...]

mysql> use dbname; 

Database changed

mysql> SET SESSION sql_mode=STRICT_ALL_TABLES;

Query OK, 0 rows affected (0.00 sec) 

mysql> SET GLOBAL innodb_file_format=Barracuda;

Query OK, 0 rows affected (0.00 sec) 

mysql> ALTER TABLE mdl_data ROW_FORMAT=Compressed;

Query OK, 0 rows affected, 2 warnings (0.04 sec)

Records: 0 Duplicates: 0 Warnings: 2 

[...]
 

Yes, the "sudo -u www-data" part in the example line:
$ sudo -u www-data /usr/bin/php admin/cli/mysql_compressed_rows.php
-l
 
is unnecessary! (The php script ultimately sends SQL commands to the database which is controlled by the user management
of the database, not the Unix shell.) 

Note on type setting:
normal: what programs print on the screen
bold: what you type
bold slanted: you type them adjusting to your setup.
 

Options:

-i, --info            Show database information

-l, --list            List problematic tables

-f, --fix             Attempt to fix all tables (requires SUPER privilege)

-s, --showsql         Print SQL statements for fixing of tables

-h, --help            Print out this help

在phpmyadmin中执行完毕
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: