innodb_buffer_pool_size的大小设置

yzxlyl 2014-10-15 05:06:06
卖了一台配置牛X服务器,32核CPU,32G内存,装的是mysql5.6.21版本,windows2003。myisam和innodb共用,设置my.ini参数时,innodb_buffer_pool_size这个参数一般都说设成物理内存的70%-80%,我开始设16G,mysql启动不了,然后一直减小测试,只有设到300M左右,mysql才能启动成功,大了mysql就启动不了。还是win2003下innodb_buffer_pool_size只能很小,这不太浪费了吗?
下面是我的ini文件
[mysqld]

#绑定IPv4和3306端口
bind-address = 0.0.0.0
port=3306
skip-external-locking
skip-name-resolve
#myisam-recover=BACKUP,FORCE
basedir=E:/k8Serv/MySQL5.6/
datadir=E:/k8Serv/MySQL5.6/data/
character_set_server = utf8
collation-server = utf8_general_ci
thread_concurrency = 8
concurrent_insert = 2
max_write_lock_count = 1
##low-priority-updates=1
default-storage-engine=MYISAM
# Set the SQL mode to strict
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
max_connections = 3000
max_connect_errors = 100
query_cache_size = 512M
query_cache_limit = 2M
query_cache_type = 1
query_cache_wlock_invalidate = 1
table_open_cache=1200
tmp_table_size=256M
thread_cache_size=800
myisam_max_sort_file_size=10G
myisam_sort_buffer_size=256M
myisam_repair_threads = 1
key_buffer_size=512M
read_buffer_size=8M
read_rnd_buffer_size=16M
bulk_insert_buffer_size = 64M
sort_buffer_size=2M
join_buffer_size=2M
back_log = 600
#log-slow-queries=mysql-slow.log
#long_query_time=2
log-error=mysql.err

##*** INNODB Specific options ***
innodb_additional_mem_pool_size=12M
innodb_flush_log_at_trx_commit=0
innodb_log_buffer_size=3M
##innodb_buffer_pool_size与key_buffer一样,可以是内存60-80%
innodb_buffer_pool_size=6G
innodb_log_file_size=512M
innodb_log_files_in_group=3
innodb_flush_neighbors=0
##log-bin=mysql-bin
##innodb_thread_concurrency Linux环境设置为0
innodb_thread_concurrency = 100
innodb_file_io_threads=4
innodb_thread_sleep_delay=40

wait_timeout=100
interactive_timeout=100
connect_timeout = 10
max_allowed_packet = 32M
...全文
23026 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
七月流火666 2016-05-16
  • 打赏
  • 举报
回复
#把这个参数设置为1试试: innodb_buffer_pool_instances=1
benluobo 2014-10-20
  • 打赏
  • 举报
回复
你确认你的内存有这么大的空间么? 使用64位的mysql
yzxlyl 2014-10-20
  • 打赏
  • 举报
回复
都提示[ERROR] InnoDB: Cannot allocate memory for the buffer pool 必须改到300M左右才能启动
zhu19774279 2014-10-20
  • 打赏
  • 举报
回复
应该是没关系,只是没研究过两个平台的配置文件是否通用,之前我担心是这方面引起的。 MySQLInstanceConfig配置好后会重新生成一个my.ini,这个生成的my.ini和你的有什么区别?比较一下看看
引用 4 楼 yzxlyl 的回复:
[quote=引用 3 楼 zhu19774279 的回复:] 2003是64位吗 安装好MySQL以后,配置的时候全都选最重的配置,它自己生成的my.ini里面的innodb_buffer_pool_size是多少? 这个配置文件有点奇怪啊,我记得Windows平台下,default-storage-engine应该是InnoDB,而不是MYISAM,这个是从Linux平台下拿过来的?
default-storage-engine应该是InnoDB,而不是MYISAM,这个有什么关系呢?是我默认的引擎,不同项目,可能就默认不同的引擎,跟平台没关系吧[/quote]
yzxlyl 2014-10-17
  • 打赏
  • 举报
回复
引用 3 楼 zhu19774279 的回复:
2003是64位吗 安装好MySQL以后,配置的时候全都选最重的配置,它自己生成的my.ini里面的innodb_buffer_pool_size是多少? 这个配置文件有点奇怪啊,我记得Windows平台下,default-storage-engine应该是InnoDB,而不是MYISAM,这个是从Linux平台下拿过来的?
default-storage-engine应该是InnoDB,而不是MYISAM,这个有什么关系呢?是我默认的引擎,不同项目,可能就默认不同的引擎,跟平台没关系吧
zhu19774279 2014-10-15
  • 打赏
  • 举报
回复
2003是64位吗 安装好MySQL以后,配置的时候全都选最重的配置,它自己生成的my.ini里面的innodb_buffer_pool_size是多少? 这个配置文件有点奇怪啊,我记得Windows平台下,default-storage-engine应该是InnoDB,而不是MYISAM,这个是从Linux平台下拿过来的?
yzxlyl 2014-10-15
  • 打赏
  • 举报
回复
看日志,就是innodb无法分配内存,开始就是innodb_buffer_pool_size不能超过4G,少于4G后就是无法分配内存,直到设为300M,才启动成功。
rucypli 2014-10-15
  • 打赏
  • 举报
回复
启动不了报什么错

56,677

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧