采取编译安装的方法,其好处为:编译安装与平台无关,安装的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. Js默认参数(多参数情况)

    js function example(settings) { var defaultSetting = { name: '小红', age: '30', sex: '女', phone: '1008 ...

  2. python爬虫之requests模块介绍

    介绍 #介绍:使用requests可以模拟浏览器的请求,比起之前用到的urllib,requests模块的api更加便捷(本质就是封装了urllib3) #注意:requests库发送请求将网页内容下 ...

  3. 使用mysql乐观锁解决并发问题

    案例说明: 银行两操作员同时操作同一账户.比如A.B操作员同时读取一余额为1000元的账户,A操作员为该账户增加100元,B操作员同时为该账户扣除50元,A先提交,B后提交.最后实际账户余额为1000 ...

  4. python编码问题和逻辑运算

    1,回顾昨天课程及作业 #1.使用while循环输入 1 2 3 4 5 6 8 9 10 ''' count = 0 while count < 10: count += 1 # count ...

  5. 51nod1649- 齐头并进-最短路

    1649 齐头并进 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 在一个叫奥斯汀的城市,有n个小镇(从1到n编号),这些小镇通过 ...

  6. Java学习之类的构建方法(函数)

    在学习类的部分时,建立一个对象是这样建立的:(假设Person是类)Person  p = new  Person():我一直很费解为何new后面是一个函数形式, 今天学完构建方法后,才恍然大悟,豁然 ...

  7. ubuntu 下 apt /apt-get command not found 命令找不到

    简介:apt 命令在ubuntu下找不到.(针对云平台,等可联网的ubuntu  如果是虚拟机,请确认能否联网 (如是虚拟机且不能联网请参考其他文章,大致方向是先挂载系统镜像再安装)) (ps:一般的 ...

  8. dig命令

      dig(域信息搜索器)命令是一个用于询问 DNS 域名服务器的灵活的工具.它执行 DNS 搜索,显示从受请求的域名服务器返回的答复.多数 DNS 管理员利用 dig 作为 DNS 问题的故障诊断, ...

  9. 腾讯云中ssL证书的配置安装

    https://cloud.tencent.com/document/product/619/12797 配置 Nginx 和 HTTPS 完成以上准备工作,就要开始配置 Nginx 和 HTTPS ...

  10. dede后台登陆后一片空白的解决办法汇总

    dede后台登陆后一片空白的第一种解决办法: 找到:include/common.inc.php文件,打开,查找程序代码://error_reporting(E_ALL);error_reportin ...