说明
在测试环境下没有设置过多的详细参数就初始化并启动了服务, 后期优化的过程中发现 innodb_data_file_path 设置过小:
- root@node1 14:59: [(none)]> show variables like '%innodb_data_file_path%';
- +-----------------------+------------------------+
- | Variable_name | Value |
- +-----------------------+------------------------+
- | innodb_data_file_path | ibdata1:12M:autoextend |
- +-----------------------+------------------------+
- 1 row in set (0.00 sec)
- root@node1 14:59: [(none)]>
当没有配置 innodb_data_file_path 时, 默认 innodb_data_file_path = ibdata1:12M:autoextend
- [mysqld]
- innodb_data_file_path = ibdata1:12M:autoextend
当需要改为 1G 时, 不能直接在配置文件把 ibdata1 改为 1G,
- [mysqld]
- innodb_data_file_path = ibdata1:1G:autoextend
否则启动服务之后, 从错误日志看到如下报错:
2019-03-29T06:47:32.044316Z 0 [ERROR] InnoDB: The Auto-extending innodb_system data file './ibdata1' is of a different size 768 pages (rounded down to MB) than specified in the .cnf file: initial 65536 pages, max 0 (relevant if non-zero) pages!
大致意思就是 ibdata1 的大小不是 65536page*16KB/1024KB=1G, 而是 786page*16KB/1024KB=12M(未使用压缩页)
方法一: 推荐
而应该再添加一个 ibdata2:1G, 如下:
- [mysqld]
- innodb_data_file_path = ibdata1:12M;ibdata2:1G:autoextend
重启数据库!
方法二: 不推荐
直接改为如下的话
- [mysqld]
- innodb_data_file_path = ibdata1:1G:autoextend
可以删除 $mysql_datadir 目录下 ibdata1,ib_logfile0,ib_logfile1 文件:
rm -f ibdata* ib_logfile*
也可以启动 MySQL, 但是 MySQL 错误日志里会报如下错误:
- 2019-03-29T07:10:47.844560Z 0 [Warning] Could not increase number of max_open_files to more than 5000 (request: 65535)
- 2019-03-29T07:10:47.844686Z 0 [Warning] Changed limits: table_open_cache: 1983 (requested 2000)
- 2019-03-29T07:10:48.028262Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
- 2019-03-29T07:10:48.147653Z 0 [Warning] InnoDB: Cannot open table MySQL/plugin from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue.
- mysqld: Table 'mysql.plugin' doesn't exist
- 2019-03-29T07:10:48.147775Z 0 [ERROR] Can't open the MySQL.plugin table. Please run mysql_upgrade to create it.
- 2019-03-29T07:10:48.163444Z 0 [Warning] InnoDB: Cannot open table MySQL/gtid_executed from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue.
- mysqld: Table 'mysql.gtid_executed' doesn't exist
- 2019-03-29T07:10:48.163502Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
- 2019-03-29T07:10:48.163658Z 0 [Warning] InnoDB: Cannot open table MySQL/gtid_executed from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue.
- mysqld: Table 'mysql.gtid_executed' doesn't exist
- 2019-03-29T07:10:48.163711Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
- 2019-03-29T07:10:48.164619Z 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key
- 2019-03-29T07:10:48.166805Z 0 [Warning] InnoDB: Cannot open table MySQL/server_cost from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue.
- 2019-03-29T07:10:48.166891Z 0 [Warning] Failed to open optimizer cost constant tables
- 2019-03-29T07:10:48.168072Z 0 [Warning] InnoDB: Cannot open table MySQL/time_zone_leap_second from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue.
- 2019-03-29T07:10:48.168165Z 0 [Warning] Can't open and lock time zone table: Table'MySQL.time_zone_leap_second'doesn't exist trying to live without them
- 2019-03-29T07:10:48.169454Z 0 [Warning] InnoDB: Cannot open table MySQL/servers from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue.
- 2019-03-29T07:10:48.169527Z 0 [ERROR] Can't open and lock privilege tables: Table'MySQL.servers'doesn't exist
- 2019-03-29T07:10:48.170042Z 0 [Warning] InnoDB: Cannot open table MySQL/slave_master_info from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue.
- 2019-03-29T07:10:48.170617Z 0 [Warning] InnoDB: Cannot open table MySQL/slave_relay_log_info from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue.
- 2019-03-29T07:10:48.170946Z 0 [Warning] InnoDB: Cannot open table MySQL/slave_master_info from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue.
- 2019-03-29T07:10:48.171046Z 0 [Warning] Info table is not ready to be used. Table 'mysql.slave_master_info' cannot be opened.
- 2019-03-29T07:10:48.171272Z 0 [Warning] InnoDB: Cannot open table MySQL/slave_worker_info from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue.
- 2019-03-29T07:10:48.171626Z 0 [Warning] InnoDB: Cannot open table MySQL/slave_relay_log_info from the internal data dictionary of InnoDB though the .frm file for the table exists. Please refer to http://dev.mysql.com/doc/refman/5.7/en/innodb-troubleshooting.html for how to resolve the issue.
- 2019-03-29T07:10:48.171688Z 0 [Warning] Info table is not ready to be used. Table 'mysql.slave_relay_log_info' cannot be opened.
来源: http://www.linuxidc.com/Linux/2019-04/157915.htm