本文系统centos6.0其实一般本人安装自己使用的系统的时候都会安装软件工作站,然后进行更新所有包;安装其他软件的时候少了很多的依赖关系,少了很多麻烦;这里
本文系统centos6.0
其实一般本人安装自己使用的系统的时候都会安装软件工作站,然后进行更新所有包;安装其他软件的时候少了很多的依赖关系,少了很多麻烦;这里本人故意安装最小化的系统进行源码包安装mysql5.6;只为记录其中遇到的问题进行解决;
1、安装yum源;
[root@bogon ~]# rpm -vhi ftp://ftp.univie.ac.at/systems/linux/fedora/epel/beta/6/i386/epel-release-6-5.noarch.rpm2、安装编译环境:
[root@bogon ~]# yum install wget gcc* make -y
[root@bogon ~]# ls *gzcmake-2.8.11.2.tar.gz mysql-5.6.12.tar.gz3、首先安装cmake
tar zxvf cmake-2.8.11.2.tar.gz cd cmake-2.8.11.2./bootstrapmakemake install4、安装mysql
useradd -s /sbin/nologin mysqlmkdir /datachown -r mysql.mysql /datatar zxvf mysql-5.6.12.tar.gzcd mysql-5.6.12[root@bogon mysql-5.6.12]# cmake . -dcmake_install_prefix=/usr/local/mysql -dmysql_datadir=/data -dwith_innobase_storage_engine=1 -dwith_archive_storage_engine=1 -dwith_blackhole_storage_engine=1 -dwith_readline=1 -dwith_ssl:string=bundled -dwith_zlib:string=bundled -dwith_libwarp=0 -dmysql_unix_addr=/tmp/mysql.sock -ddefault_charset=utf8 -ddefault_collation=utf8_general_ci -dextra_charsets=all提示报错;
安装相关包
yum install openssl openssl-devel ncurses ncurses-devel -y重新编译
rm -rf cmakecache.txt[root@bogon mysql-5.6.12]# cmake . -dcmake_install_prefix=/usr/local/mysql -dmysql_datadir=/data -dwith_innobase_storage_engine=1 -dwith_archive_storage_engine=1 -dwith_blackhole_storage_engine=1 -dwith_readline=1 -dwith_ssl:string=bundled -dwith_zlib:string=bundled -dwith_libwarp=0 -dmysql_unix_addr=/tmp/mysql.sock -ddefault_charset=utf8 -ddefault_collation=utf8_general_cimakemake install cp support-files/mysql.server /etc/init.d/mysqldchmod +x /etc/init.d/mysqldchkconfig --add mysqldchkconfig mysqld on5、调整lib库路径:将mysql的库文件路径:“/usr/local/mysql/lib/mysql” 加入带系统的库文件搜索路径中
[root@bogon mysql]# vim /etc/ld.so.conf.d/mysql.conf/usr/local/mysql/libldconfig //刷新,使修改生效
6、设置mysql程序的执行路径:
[root@bogon mysql]# vim /etc/profile.d/mysql.shexport path=$path:/usr/local/mysql/bin[root@bogon mysql]# source /etc/profile7、将mysql的man文档输入到系统手册;
yum install manvim /etc/man.configmanpath /usr/local/mysql/man8、输出mysql的头文件到系统头文件
ln -sv /usr/local/mysql/include/ /usr/include/mysql9、编辑my.cnf文件;然后进行初始化
[root@bogon mysql]# vim /etc/my.cnf[mysqld]datadir=/datasocket=/tmp/mysql.sockuser=mysqlserver-id=1log-bin=mysql-binreport-port=3306port=3306# disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data --user=mysql
至此安装完毕;下面说明相关编译参数:
-dcmake_install_prefix=/usr/local/mysql#安装目录-dmysql_datadir=/data#数据库存放目录-dsysconfdir=/etc#mysql配辑文件-dwith_myisam_storage_engine=1#安装myisam存储引擎-dwith_innobase_storage_engine=1#安装innodb存储引擎-dwith_archive_storage_engine=1#安装archive存储引擎-dwith_blackhole_storage_engine=1#安装blackhole存储引擎-dwith_local_infile=1#允许从本地导入数据-dwith_readline=1#快捷键功能-dmysql_unix_addr=/tmp/mysql.sock#unix socket 文件路径-ddefault_charset=utf8#默认字符-ddefault_collation=utf8_general_ci#校验字符-dextra_charsets=all#安装所有扩展字符集-dmysql_tcp_port=3306-dmysql_user=mysql、-dwith_ssl=yes-dwith_memory_storage_engine=1#安装memory存储引擎-dwith_federated_storage_engine=1#安装frderated存储引擎再下面是my.cnf的一些配置项:
[client]port = 3309socket = /home/mysql/mysql/tmp/mysql.sock[mysqld]!include /home/mysql/mysql/etc/mysqld.cnf #包含的配置文件 ,网站空间,把用户名,密码文件单独存放port = 3309socket = /home/mysql/mysql/tmp/mysql.sockpid-file = /usr/local/mysql/var/mysql.pidbasedir = /home/mysql/mysql/datadir = /usr/local/mysql/mysql/mysql/var/# tmp dir settingstmpdir = /home/mysql/mysql/tmp/slave-load-tmpdir = /home/mysql/mysql/tmp/#当slave 执行 load data infile 时用#language = /home/mysql/mysql/share/mysql/english/character-sets-dir = /home/mysql/mysql/share/mysql/charsets/# skip optionsskip-name-resolve #grant 时,必须使用ip不能使用主机名skip-symbolic-links #不能使用连接文件skip-external-locking #不使用系统锁定,要使用myisamchk,必须关闭服务器skip-slave-start #启动mysql,不启动复制#sysdate-is-now# res settingsback_log = 50 #接受队列,对于没建立tcp连接的请求队列放入缓存中,队列大小为back_log,受限制与os参数max_connections = 1000 #最大并发连接数 ,增大该值需要相应增加允许打开的文件描述符数max_connect_errors = 10000 #如果某个用户发起的连接error超过该数值,则该用户的下次连接将被阻塞,香港服务器租用,直到管理员执行flush hosts ; 命令;防止黑客#open_files_limit = 10240connect-timeout = 10 #连接超时之前的最大秒数,在linux平台上,该超时也用作等待服务器首次回应的时间wait-timeout = 28800 #等待关闭连接的时间interactive-timeout = 28800 #关闭连接之前,允许interactive_timeout(取代了wait_timeout)秒的不活动时间。客户端的会话wait_timeout变量被设为会话interactive_timeout变量的值。slave-net-timeout = 600 #从服务器也能够处理网络连接中断。但是,只有从服务器超过slave_net_timeout秒没有从主服务器收到数据才通知网络中断net_read_timeout = 30 #从服务器读取信息的超时net_write_timeout = 60 #从服务器写入信息的超时net_retry_count = 10 #如果某个通信端口的读操作中断了,在放弃前重试多次net_buffer_length = 16384 #包消息缓冲区初始化为net_buffer_length字节,但需要时可以增长到max_allowed_packet字节max_allowed_packet = 64m ##table_cache = 512 #所有线程打开的表的数目。增大该值可以增加mysqld需要的文件描述符的数量thread_stack = 192k #每个线程的堆栈大小thread_cache_size = 20 #线程缓存thread_concurrency = 8 #同时运行的线程的数据 此处最好为cpu个数两倍。本机配置为cpu的个数# qcache settingsquery_cache_size = 256m #查询缓存大小query_cache_limit = 2m #不缓存查询大于该值的结果query_cache_min_res_unit = 2k #查询缓存分配的最小块大小# default settings# time zonedefault-time-zone = system #服务器时区character-set-server = utf8 #server级别字符集default-storage-engine = innodb #默认存储# tmp & heaptmp_table_size = 512m #临时表大小,如果超过该值,则结果放到磁盘中max_heap_table_size = 512m #该变量设置memory (heap)表可以增长到的最大空间大小log-bin = mysql-bin #这些路径相对于datadirlog-bin-index = mysql-bin.indexrelayrelay-log = relay-logrelayrelay_log_index = relay-log.index# warning & error loglog-warnings = 1log-error = /home/mysql/mysql/log/mysql.errlog_output = file #参数log_output指定了慢查询输出的格式,默认为file,你可以将它设为table,然后就可以查询mysql架构下的slow_log表了# slow query logslow_query_log = 1long-query-time = 1 #慢查询时间 超过1秒则为慢查询slow_query_log_file = /home/mysql/mysql/log/slow.log#log-queries-not-using-indexes#log-slow-slave-statementsgeneral_log = 1general_log_file = /home/mysql/mysql/log/mysql.logmax_binlog_size = 1gmax_relay_log_size = 1g# if use auto-ex, set to 0relay-log-purge = 1 #当不用中继日志时,删除他们。这个操作有sql线程完成# max binlog keeps daysexpire_logs_days = 30 #超过30天的binlog删除binlog_cache_size = 1m #session级别# replicationreplicate-wild-ignore-table = mysql.% #复制时忽略数据库及表replicate-wild-ignore-table = test.% #复制时忽略数据库及表# slave_skip_errors=allkey_buffer_size = 256m #myisam索引buffer,只有key没有datasort_buffer_size = 2m #排序buffer大小;线程级别read_buffer_size = 2m #以全表扫描(sequential scan)方式扫描数据的buffer大小 ;线程级别join_buffer_size = 8m # join buffer 大小;线程级别read_rnd_buffer_size = 8m #myisam以索引扫描(random scan)方式扫描数据的buffer大小 ;线程级别bulk_insert_buffer_size = 64m #myisam 用在块插入优化中的树缓冲区的大小。注释:这是一个per thread的限制myisam_sort_buffer_size = 64m #myisam 设置恢复表之时使用的缓冲区的尺寸,当在repair table或用create index创建索引或alter table过程中排序 myisam索引分配的缓冲区myisam_max_sort_file_size = 10g #myisam 如果临时文件会变得超过索引,不要使用快速排序索引方法来创建一个索引。注释:这个参数以字节的形式给出.重建myisam索引(在repair table、alter table或load data infile过程中)时,允许mysql使用的临时文件的最大空间大小。如果文件的大小超过该值,则使用键值缓存创建索引,要慢得多。该值的单位为字节myisam_repair_threads = 1 #如果该值大于1,在repair by sorting过程中并行创建myisam表索引(每个索引在自己的线程内)myisam_recover = 64k#允许的group_concat()函数结果的最大长度transaction_isolation = repeatable-readinnodb_file_per_table#innodb_status_file = 1#innodb_open_files = 2048innodb_additional_mem_pool_size = 100m #帧缓存的控制对象需要从此处申请缓存,所以该值与innodb_buffer_pool对应innodb_buffer_pool_size = 2g #包括数据页、索引页、插入缓存、锁信息、自适应哈希所以、数据字典信息innodb_data_home_dir = /usr/local/mysql/var/#innodb_data_file_path = ibdata1:1g:autoextendinnodb_data_file_path = ibdata1:500m;ibdata2:2210m:autoextend #表空间innodb_file_io_threads = 4 #io线程数innodb_thread_concurrency = 16 #innodb试着在innodb内保持操作系统线程的数量少于或等于这个参数给出的限制innodb_flush_log_at_trx_commit = 1 #每次commit 日志缓存中的数据刷到磁盘中innodb_log_buffer_size = 8m #事物日志缓存innodb_log_file_size = 500m #事物日志大小#innodb_log_file_size =100minnodb_log_files_in_group = 2 #两组事物日志innodb_log_group_home_dir = /usr/local/mysql/mysql/var/#日志组innodb_max_dirty_pages_pct = 90 #innodb主线程刷新缓存池中的数据,使脏数据比例小于90%innodb_lock_wait_timeout = 50 #innodb事务在被回滚之前可以等待一个锁定的超时秒数。innodb在它自己的 锁定表中自动检测事务死锁并且回滚事务。innodb用lock tables语句注意到锁定设置。默认值是50秒#innodb_flush_method = o_dsync[mysqldump]quickmax_allowed_packet = 64m[mysql]disable-auto-rehash #允许通过tab键提示default-character-set = utf8connect-timeout = 3
本文出自 “coffee_蓝山” 博客,请务必保留此出处
,香港虚拟主机