linux mysql5.1
遇到2个问题1  小问题(数据库太多 每次总是要手工创建一个库很麻烦)
mysqldump -uroot -p  a(数据库名字)     导出某个库(库名a)的时候不能带 数据库的建立语句比如 CREATE DATABASE /*!32312 IF NOT EXISTS*/ `a` /*!40100 DEFAULT CHARACTER SET latin1 */;USE `a`;这样每次创建的时候都要重新建立一个库 ,之后才能 mysqldump..  a   < a.sql才能倒入   数据多机器多的时候好麻烦 .
我测试 mysqldump -uroot  --add-drop-database --all-databases > alldb.sql  可以带所有的建立库的语句现在的想法一次在mysqldump -uroot -p a  加上某些组合参数把数据库的建立语句dll也给导出来
?  ( 这样我在客户机器上不用创建库名字 直接执行 mysql -uroot -p < a.sql 可以把所有事情解决 )
2  重新设计在线my.cnf 的innodb_buffer_pool_size大小
这个公式 大家又用到没有 ?
 key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections网上找到一个帖子  (他说当地内存12g   据说用起来可以)
key_buffer = 128M
max_allowed_packet = 1M
table_cache = 128
sort_buffer_size = 128M
net_buffer_length = 8K
read_buffer_size = 128M
read_rnd_buffer_size = 256M
myisam_sort_buffer_size = 32Mmax_connections=600
innodb_buffer_pool_size = 2048M如果用公式计算128M+(128M+128M)*600=153728m  =  154g      
         是否说明公式的问题还是 配置的问题 ?

解决方案 »

  1.   

    1 貌似mysql就是如此垃圾,解决办法我是不会。只能自己写个脚本,构造建库语句放入sql前面。2 你想干嘛?请给出你的内存,我们帮你优化参数。
    read_rnd_buffer_size  有个1M就够,
    key_buffer_size       是你所有库表的,myi的,120%就够。
      

  2.   

     --add-drop-database 这个你不是已经加上了吗?这个就可以满足你的要求啊。
      

  3.   

    1、现在的想法一次在mysqldump -uroot -p a 加上某些组合参数把数据库的建立语句dll也给导出来
    mysqldump -uroot -p -B --add-drop-database DBNAME>R:\TEMP\123.TXT
      

  4.   

    第1个问题解决
    mysqldump -uroot -p -B --add-drop-database DBNAME>R:\TEMP\123.TXT
    感谢 否则我要写太多的脚本   (drop ...   create     mysqldump)
    第2个问题很困惑 当地内存12g  cpu双核  下面的my.cnf觉得有问题 ? 
    key_buffer = 128M
    max_allowed_packet = 1M
    table_cache = 128
    sort_buffer_size = 128M
    net_buffer_length = 8K
    read_buffer_size = 128M
    read_rnd_buffer_size = 256M
    myisam_sort_buffer_size = 32Mmax_connections=600
    innodb_buffer_pool_size = 2048M设计在线my.cnf 的innodb_buffer_pool_size大小
    这个公式
     key_buffer_size + (read_buffer_size + sort_buffer_size)*max_connections+innodb_buffer_pool_size  应该等于物理内存
    如果用这个公式计算128M+(128M+128M)*600=153728m = 154g    但是实际物理内存
    为12g .   linux 系统.
      是否说明公式的问题还是 配置的问题 ?
      

  5.   

    学会了,太好啦,感谢 WWWWA光有-B即可,
    光有--add-drop-database不行, 
    -B --add-drop-database 最好
      

  6.   

    http://space.itpub.net/25267658/viewspace-688906请参照 我的博客上的。
      

  7.   

    根据通用的mysql内存计算公式:
    2Wi iO)ec z6_;W252676581) 系统使用,假设预留800M;ITPUB个人空间/C.}d'@e [$kEh
    2) 线程独享,约4.5GB = 151 * (10M + 10M + 5M + 5M + 512K),组成大概如下:ITPUB个人空间1N FY{ a
    sort_buffer_size:10M
    F} d(j4[y+@,rt25267658join_buffer_size:10MITPUB个人空间-N_p-`J*G.jHh
    read_buffer_size:5MITPUB个人空间3O7nn`b4D }O
    read_rnd_buffer_size:5M
    (ok U/Y7N ux25267658thread_stack:512KBITPUB个人空间H jj.\ W jc`X
    3)MyISAM Key CacheITPUB个人空间n-g8Pa`GeV&m
    key_buffer_size 2.4G
    (V~E8j` j"La`252676584)Innodb Buffer Pool:忽略,目前系统没有innodb存储引擎的表。总计算:内存使用量 系统占用+峰值所有线程占用+MyiSAM Key Cache占用:800M+4.5G+2.4G=7.7G,还余有0.3G。经过近段时间以来观察(使用show processlist;),峰值线程数量最大为68,这个峰值持续时间仅仅几秒钟,所以目前峰值占用内存值为4.5G,
    (MZv C8A5[5iwP6j6d25267658平常通过show peocesslist;查看一般线程数量在30左右。现在192.168.250.20上面数据库的配置,计算下来,在151个线程峰值的时候,占据的内层总共为4.0G,所以为了提高内存利用率以及将来的业务ITPUB个人空间/q!k6x9]2}L n,|
    扩展需要有必要对mysql参数进行调整。保守的调整参数值如下:key_buffer_size = 2457MITPUB个人空间o"b+hE+]B0A@
    max_allowed_packet = 20MITPUB个人空间-k!ITQ#OIoe
    table_open_cache = 1024
    mk@#j%Nl.A _25267658sort_buffer_size = 10M
    #}I0S ~0Y"t3Gz(K25267658read_buffer_size = 10M
    (D5{L3{y#J#ac(U25267658read_rnd_buffer_size = 5MITPUB个人空间+spD+sB`{
    read_rnd_buffer_size = 5MITPUB个人空间D8| u3lMOFF_)`
    myisam_sort_buffer_size = 64MITPUB个人空间m!Kf#jt`{
    thread_cache_size = 8
    gwNq*^#i25267658query_cache_size = 132MITPUB个人空间?&tJs:I
    thread_concurrency = 8ITPUB个人空间7[:n4gNw5v i p b7m0`
    tmp_table_size = 32M这些参数的设置,192.156.250.20数据库可以支持并发用户线程151个。这个只是预期结果,还没有经过上线验证。
      

  8.   

    mysqldump -uroot  --all-databases > a.sql包含所有 存储过程