相关疑难解决方法(0)

如何安全地更改 MySQL innodb 变量“innodb_log_file_size”?

所以我对调整 InnoDB 还很陌生。我正在慢慢地将表(在必要时)从 MyIsam 更改为 InnoDB。我在 innodb 中有大约 100MB,所以我将innodb_buffer_pool_size变量增加到 128MB:

mysql> show variables like 'innodb_buffer%';
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| innodb_buffer_pool_size | 134217728 |
+-------------------------+-----------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

当我去更改innodb_log_file_size值时(例如mysql 的 innodb 配置页面my.cnf注释将日志文件大小更改为缓冲区大小的 25%。所以现在我的 my.cnf 看起来像这样:

# innodb
innodb_buffer_pool_size = 128M
innodb_log_file_size = 32M
Run Code Online (Sandbox Code Playgroud)

当我重新启动服务器时,出现此错误:

110216 9:48:41 InnoDB:初始化缓冲池,大小 = 128.0M
110216 9:48:41 InnoDB:缓冲池初始化完成
InnoDB:错误:日志文件 ./ib_logfile0 的大小不同 0 5242880 字节
InnoDB:比指定的.cnf 文件 0 33554432 字节!
110216 9:48:41 [错误] …

mysql innodb myisam logs

113
推荐指数
3
解决办法
21万
查看次数

mysqldump 数据加载速度慢

我有一个中等大小的 MySQL 数据库,大约有 30 个表,其中一些是 1000 万条记录,一些是 1 亿条记录。将mysqldump所有表(为独立的文件)的速度也相当快,也许需要20分钟。它会生成大约 15GB 的数据。最大的转储文件在 2GB 范围内。

当我将数据加载到另一个机器上的 MySQL 中时,它是一台六核 8GB 的​​机器,它需要永远。轻松 12 个时钟小时或更多。

我只是运行mysql客户端来加载文件,即

mysql database < footable.sql
Run Code Online (Sandbox Code Playgroud)

直接用mysqldump出来的文件

mysqldump database foo > footable.sql
Run Code Online (Sandbox Code Playgroud)

显然我做错了什么。我从哪里开始才能在合理的时间内完成?

我没有在转储或负载上使用任何开关。

mysql mysqldump

22
推荐指数
4
解决办法
4万
查看次数

标签 统计

mysql ×2

innodb ×1

logs ×1

myisam ×1

mysqldump ×1