MiBDP,数据开发、项目团队、数据应用和产品在路上,金融保险、互联网网游、电商、新零售行业、大数据和AI在路上。对数仓、模型、ETL、数据产品应用了解。DTCC 2013演讲嘉宾,曾做过两款大获好评的数据产品平台。知识星球ID:35863277
分类: Mysql/postgreSQL
2010-12-30 10:38:16
第一步:从mysql的官方取得分发版本
http://dev.mysql.com/downloads/
PS:这里可以直接下载源码分发版
第二步:建立mysql的用户组及用户
Groupadd mysql
Useradd -g mysql mysql
第三步:解压缩源文件
Tar xvfz /source_dir/mysql-version.tar.gz
第四步:配置configure文件(这里比较关键)
Cd mysql-version
首先查看下configure的配置内容
./configure --help
这里依据实际需要选择合适的配置
./configure --prefix=/usr/local/mysql --enable-assembler --enable-profiling --with-charset=utf8 --with-extra-charsets=latin1,gbk,gb2312 --with-zlib-dir=bundled --with-big-tables --with-plugins=partition,daemon_example,myisam,federated,myisammrg
(PS:--with-plugins的插件选择我们选择了partition这个是对表分区的支持mysql5.1后才支持 daemon_example这个是创建daemon例子的 myisam是针对传统的非事务性表的,因为我们的系统主要是用于数据仓库只有插入,删除和修改的操作很少。Federated是远程连接mysql的表,myisammrg是整合多表到一个表的)
第五步:编译二进制文件并对mysql进行初始化操作
Make
Make install
Cd /usr/local/mysql/
./bin/mysql_install_db
最后就是修改mysql程序和目录的权限及属主了
Chown -R mysql /usr/local/mysql
Chgrp -R mysql /usr/local/mysql
最后启动mysql服务:
/usr/loacl/mysql/bin/mysqld_safe &
如果想在系统启动时便启动mysql的话,需将/usr/local/mysql子目录的support-files下的mysql.server复制到/etc/init.d目录下
Cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
Chmod +x /etc/init.d/mysql
Chkconfig --add mysql
另:附上my.cnf设置 服务器:IBM System X MEM info : 6*2048 MB Disk_totle : 583.9GB CPU model : 8 Intel(R) Xeon(R) CPU E5504 @ 2.00GHz CPU_phy_num : 2 CPU_core_num : 4 CPU_logic_num: 4 skip_locking #避免MySQL的外部锁定,减少出错几率增强稳定性。 max_connections = 400 #指定MySQL允许的最大连接进程数。我们是分析系统同时连接的进程数比较少,这个是参照TD的最大登录数进行的扩展。 sort_buffer_size = 16M #查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占,如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。所以,对于内存在4GB左右的服务器推荐设置为6-8M。 read_buffer_size = 16M #读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。 key_buffer_size = 512M #key_buffer_size指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。对于内存在4GB左右的服务器该参数可设置为256M或384M,不要大于内存的30%。注意:该参数值设置的过大反而会是服务器整体效率降低! join_buffer_size = 128M #联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。 query_buffer_size = 64M #指定MySQL查询缓冲区的大小。可以通过在MySQL控制台观察,如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况;如果Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,如果该值较小反而会影响效率,那么可以考虑不用查询缓冲;Qcache_free_blocks,如果该值非常大,则表明缓冲区中碎片很多。 tmp_table_size = 64M # 内部(内存中)临时表的最大大小 # 如果一个表增长到比此值更大,将会自动转换为基于磁盘的表. # 此限制是针对单个表的,而不是总和. myisam_sort_buffer_size = 16M table_cache = 256 # 所有线程所打开表的数量. # 增加此值就增加了mysqld所需要的文件描述符的数量
后期的mysql的操作详看mysql笔记:
chinaunix网友2011-01-03 14:38:57
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com