采取编译安装的方法,其好处为:编译安装与平台无关,安装的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. vivi虚拟摄像头驱动程序

    一.vivi虚拟摄像头驱动 基于V4L2(video for linux 2)摄像头驱动程序,我们减去不需要的ioctl_fops的函数,只增加ioctl函数增加的必要的摄像头流查询等函数: #inc ...

  2. 180114 用装饰器实现在不改变函数调用者的代码基础上,实现在函数执行前后分别打印"before" 和 "after"

    def bef_aft(func): #定义一个名为bef_aft的函数名 ,()里的是函数的参数,设置为func, 函数的参数分为实参和形参,有个参数传递的概念 ,下面有很多的解释 def PRin ...

  3. CSS文本超出2行就隐藏并且显示省略号

    今天做东西,遇到了这个问题,百度后总结得到了这个结果. 首先,要知道css的三条属性. overflow:hidden; //超出的文本隐藏 text-overflow:ellipsis; //溢出用 ...

  4. OllyDBG 破解入门教程

    一.OllyDBG 的安装与配置OllyDBG  版的发布版本是个 ZIP 压缩包,只要解压到一个目录下,运行 OllyDBG.exe 就可以了.汉化版的发布版本是个 RAR 压缩包,同样只需解压到一 ...

  5. c++(循环单向链表)

    前面的博客中,我们曾经有一篇专门讲到单向链表的内容.那么今天讨论的链表和上次讨论的链表有什么不同呢?重点就在这个"循环"上面.有了循环,意味着我们可以从任何一个链表节点开始工作,可 ...

  6. JavaScript八张思维导图—编程风格

    JS基本概念 JS操作符 JS基本语句 JS数组用法 Date用法 JS字符串用法 JS编程风格 JS编程实践 不知不觉做前端已经五年多了,无论是从最初的jQuery还是现在火热的Angular,Vu ...

  7. c++---天梯赛---N个数求和

    ★题目: ★难点:要求只能以有理数和分数去输出结果. ★分析:可以对输入的数据进行通分处理,随后把结果按格式输出. ★代码: #include<iostream> #include< ...

  8. PhpStorm中如何使用Xdebug工具,入门级操作方法

    http://blog.csdn.net/knight_quan/article/details/51953269 1.简介: PhpStorm是一个轻量级且便捷的PHP IDE,其提供的智能代码补全 ...

  9. 本地phpstudy开发中apache可以用,nginx不可用,

    倒腾半天,在控制面板中,windows防火墙中关闭防火墙即可, http://blog.csdn.net/vic0228/article/details/70756450

  10. SVN版本库修改URL路径或者IP地址

    服务器的IP地址或者URL变更,版本库服务器的IP也要修改,因为当初安装SVN URL没有使用别名,所以使用的人都要修改客户端的IP,以下是参考网上的资料. 1.Windows TortoiseSVN ...