采取编译安装的方法,其好处为:编译安装与平台无关,安装的MySQL目录独立,维护起来方便,而且拥有更好的性能。

环境:CentOS release 6.9 (Final)  x86_64

1)下载mysql 链接:http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.72.tar.gz
安装基础环境:
yum -y install gcc gcc-c++ zlib-devel libtool ncurses-devel libxml2-devel wget
首先添加mysql用户及组
groupadd mysql
useradd -g mysql mysql
编译安装:
cd /usr/local/src
wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.72.tar.gz
tar xf mysql-5.1.72.tar.gz
cd mysql-5.1.72
./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-extra-charsets=all --enable-thread-safe-client --enable-assembler --with-readline --with-big-tables --with-plugins=all --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static
make && make install
2)配置权限,数据安装路径为/data/mysql并设置开机自启动:
cd /usr/local/mysql/
cp /usr/local/mysql/share/mysql/my-huge.cnf /etc/my.cnf
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chown -R mysql:mysql /usr/local/mysql/
mkdir -p /data/mysql //数据存放路径
sed -i '39a datadir=/data/mysql' /etc/my.cnf //加入配置文件
/usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/data/mysql //初始化文件和数据库
启动时遇到错误:
[root@localhost mysql]# service mysqld start
Starting MySQL. ERROR! Manager of pid-file quit without updating file.
解决方法:http://www.jb51.net/article/48625.htm
问题解决后:
service mysqld start
chkconfig mysqld on
配置环境:
echo 'export PATH=/usr/local/mysql/bin:$PATH'>>/etc/profile
source /etc/profile
对数据库简单优化:
mysql> select user,host from mysql.user;
mysql> delete from mysql.user where host='::1'
mysql> delete from mysql.user where host='localhost.localdomain';
mysql> drop database test;
设置数据库密码:
mysqladmin -u root password '123'
登录方式:
mysql -uroot -p123
修改密码:
mysqladmin -uroot -p123 password '111' 2)mysql配置文件优化
配置文件如下:
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld] //mysqld服务启动时的参数
port = 3306 //端口号
socket = /tmp/mysql.sock //用户在linux环境下客户端连接可以不通过TCP/IP网络
skip-locking
key_buffer_size = 384M //索引的缓冲区大小可设置为256M或384M,不建议设置过大
max_allowed_packet = 4M      //消息传输量的最大值,默认1M最大1G,必须为1024的倍数
table_open_cache = 512 //高速缓存大小
sort_buffer_size = 2M                //查询排序时使用的缓冲区大小
read_buffer_size = 2M                //读查询操作使用的缓冲区大小
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8 //连接线程最大数值 0~16384、1GB内存可以配置为8,2GB内存可以配置为16,3GB内存可以配置为32,4GB及以上64
query_cache_size = 32M //mysql查询缓冲区大小
thread_concurrency = 8
datadir=/data/mysql
log-bin=mysql-bin
server-id = 1
max_connections = 456                //允许的最大连接进程数
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

做别名方便启动mysql:

alias mysql='/usr/local/mysql/bin/mysql'

2)优化

查看运行各种状态值:
mysql> show global status;
1、慢查询
慢查询是指超过指定时间的SQL语句查询,分析MySQL语句查询性能的方法除了使用EXPLAIN输出执行计划,还可以让MySQL记录下查询超过指定时间的语句。
mysql> show variables like '%slow%';
开启慢查询:
mysql>set global slow_query_log=ON;
如果是主从结构,可以打开一台从服务器的慢查询来监控,或者用自带的命令查询
[root@localhost bin]# ./mysqldumpslow -s -c -t 20 /data/mysql/localhost-slow.log
2、连接数
遇见“MySQL:ERROR 1040:Too manyconnections”的情况配置文件中max_connections的值过小。
mysql> show variables like 'max_connections';
查看过去最大连接数如果达到上限需要增大:
mysql> show global status like 'Max_used_connections';
3、key_buffer_size
key_buffer_size是设置MyISAM表索引引擎缓存空间的大小
mysql> show variables like 'key_buffer_size';
4、临时表
mysql>show global status like 'created_tmp%';
5、open table的情况
open_tables表示打开表的数量,opened_tables表示打开过的表数量
mysql>show global status like 'open%tables%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Open_tables | 9 |
| Opened_tables | 15 |
+---------------+-------+
6、进程使用情况
threads_created表示创建过的线程数
mysql>show global status like 'Thread%';
threads_created的值过大,表明MySQL服务器一直在创建线程,这也是比较耗资源的,可以适当增大配置文件中thread_cache_size的值。
mysql>show variables like 'thread_cache_size';
7、查询缓存
query_cache_size用于设置MySQL的查询缓存(query cache)大小,query_cache_type用于设置使用查询缓存的类型
8、排序使用情况
mysql>show global status like 'sort%';
9、文件打开数
文件打开数(open_files)大于open_files_limit值时,MySQL数据库就会产生卡住的现象。
mysql>show global status like 'open_files';
mysql>show variables like 'open_files_limit';
10、Innodb_buffer_pool_size的合理设置

平台配置:

[client]
default-character-set=utf8
port      =3306
socket     =/tmp/mysql.sock
[mysqld]
user      =mysql
port      =3306
socket     =/tmp/mysql.sock
basedir    =/usr/local/mysql
datadir    =/data/mysql/data
log-error   =/data/mysql/mysql-error.log
pid-file    =/data/mysql/mysql.pid
old-passwords =1
log_slave_updates=1
log-bin       =/data/mysql/binlog/mysql-bin
binlog_format    =mixed
binlog_cache_size  =4M
max_binlog_cache_size=8M
max_binlog_size   =1G
expire_logs_days   =90
binlog-ignore-db  =mysql
binlog-ignore-db  =test
binlog-ignore-db  =information_schema
key_buffer_size     =384M
sort_buffer_size    =2M
read_buffer_size    =2M
read_rnd_buffer_size  =16M
join_buffer_size    =2M
thread_cache_size    =8
query_cache_size    =32M
query_cache_limit    =2M
query_cache_min_res_unit=2k
thread_concurrency   =32
table_cache    =614
table_open_cache =512
open_files_limit =10240
back_log     =600
max_connections  =5000
max_connect_errors=6000
external-locking =FALSE
max_allowed_packet   =16M
default-storage-engine =MyISAM
thread_stack      =192K
transaction_isolation  =READ-COMMITTED
tmp_table_size     =256M
max_heap_table_size   =512M
bulk_insert_buffer_size =64M
myisam_sort_buffer_size =64M
myisam_max_sort_file_size=10G
myisam_repair_threads  =1
myisam_recover
long_query_time   =2
slow_query_log
slow_query_log_file =/data/mysql/slow.log
skip-name-resolve
skip-locking
skip-networking
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 512M
innodb_data_file_path = ibdata1:256M:autoextend
innodb_file_io_threads = 4
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M
innodb_log_file_size = 128M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = 0
[mysqldump]
quick
max_allowed_packet = 64M
[mysql]
no-auto-rehash
Remove the next comment character if you are not familiar with SQL
safe-updates
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer   = 2M
write_buffer  = 2M
[mysqlhotcopy]
interactive-timeout

Mysql编译安装及优化的更多相关文章

  1. Nginx PHP MySql 编译安装

    以CentOS5.6为平台编译安装.确保系统已经安装gcc/gcc-c++编译器! 1.Nginx-1.0.14 2.PHP-5.3.10 3.MySql-5.1.61 安装相关依赖开发库: auto ...

  2. 2、mysql编译安装

    2.1前言: 此文档介绍的是cmake编译安装的方式: 二进制的安装方式在linux运维_集群_01中有详细的安装说明(已经编译完成,进行初始操作即可) 初始化操作时需要对编译好的mysql进行一下备 ...

  3. mysql 编译安装

    mysql 编译安装方式:   ```cd /home/oldboy/tools```                创建 目录          if not have   then     mkd ...

  4. centos mysql 编译安装

    centos mysql 编译安装 1.安装 创建MySQL用户 sudo useradd mysql 下载MySQL的源码包,我们这里使用的时5.5.18 安装依赖 sudo yum -y inst ...

  5. mysql编译安装(详细)(转载)

    mysql编译安装(详细)   一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl 安装cmake,从 ...

  6. rpm安装MySQL5.5后配置,在centos5上;mysql编译安装在centos6.5上;

    [1] 没有/etc/my.cnf: rpm包安装的MySQL是不会安装/etc/my.cnf文件的:处理:cp /usr/share/mysql/my-huge.cnf /etc/my.cnf [2 ...

  7. 20190418 CentOS7实用技能综合:系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/RocketMQ/RabbitMQ编译安装 + ...各类常用生产环境软件的编译安装

    系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/Roc ...

  8. Linux(centos)下mysql编译安装教程

    Linux下mysql编译安装教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 本文測试环境centOS6.6 一.Linux下编译安装MyS ...

  9. Ansible部署MySQL编译安装

    环境: 系统:centos7 x3 master:192.168.220.133 slave1:192.168.220.136 slave2:192.168.220.137 前期准备: slave1( ...

随机推荐

  1. 存储库-MongoDB简单的操作

    简介: MongoDB是一款强大.灵活.且易于扩展的通用型数据库 1.易用性 MongoDB是一个面向文档的数据库,而不是关系型的数据库: 不采用关系型主要是为了可扩展性 2.易扩展性 存储在Mong ...

  2. PE 001~010

    题意: 001(Multiples of 3 and 5):对小于1000的被3或5整除的数字求和. 002(Even Fibonacci numbers):斐波那契数列中小于等于4 000 000的 ...

  3. Link-Cut-Trees

    填坑,填坑,填坑…… 开篇镇人品……下文的比喻仅供娱乐…… 为了迎接JSZX校内互测,我临时填坑学了LCT…… 怎么说呢……我也是懵懵懂懂地看了N篇博客,对着标程敲上一发代码,然后才慢慢理解.这里推荐 ...

  4. 关于int *a[常量]与int (*a)[常量]的分析与区分(详解)

    前言: 小伙伴私信我说,int *a[常量]与int (*a)[常量]这个区分不开,C指针,确实是C中最难的部分,也是学C++,JAVA,包括你以后上岗用的非常频繁的东西,在这里我就简单论述一下吧,具 ...

  5. [bzoj2288][POJ Challenge]生日礼物

    用堆维护双向链表来贪心... 数据范围显然不容许O(nm)的傻逼dp>_<..而且dp光是状态就n*m个了..显然没法优化 大概就会想到贪心乱搞了吧...一开始想贪心地通过几段小的负数把正 ...

  6. Spring框架学习笔记(3)——配置bean

    1.属性注入 (1)根据setter方法属性注入,这里使用的是property标签.需要bean属性提供对应的setter方法,比如笔记(1)里的 HelloWorld使用的就是这种方法. <! ...

  7. css3 样式 圆角

    第一次学习css3 现在总结一下,方便以后查看: 1.border-radius:25px; 这个用来增加圆角属性 2.CSS3边框阴影 在 CSS3 中,box-shadow 用于向方框添加阴影: ...

  8. UEP-标签

    这里的标签都是常用不好理解的: formatfunc="showFormatNumer" 显示数字在页面上 ockedcolumnnum="6" 几列是不动的 ...

  9. [国嵌攻略][060][LCD工作原理解析]

    LCD硬件体系 1.LCD液晶屏 液晶属于一种有机化合物,分子形状为长棒状,在不同的电流作用下,分子会有规律旋转,这样对光线产生一定的控制形成一个像素,而很多像素右可以构成完整的图像. LCD是Liq ...

  10. python基础2 day3

    一.上节回顾 1,while else2,格式化输出name = input('>>>')s1 = '我叫%s,今年%d岁'%(name,18)dic1name = input('& ...