第一步:从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笔记: