1. 背景

MySQL为开源数据库,因此可以基于源码实现安装。基于源码安装有更多的灵活性。也就是说我们可以针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码,根据不同的软件平台环境调整相关的编译参数,选择自身需要选择不同的安装组件,设定需要的字符集等等一些可以根据特定应用场景所作的各种调整。本文描述了如何在源码方式下安装MySQL

2. 安装依赖包

# yum install wget bison gcc gcc-c++ make cmake ncurses-devel libtool zilib-devel perl -y

3. 配置OS资源限制

# vi /etc/security/limits.conf
mysql soft nproc 2047
mysql hard nproc 16384
mysql soft nofile 1024
mysql hard nofile 65536

4. 配置OS防火墙

建议按业务场景设置,我这里先清掉

# service iptables stop;chkconfig iptables off

selinux如果没有这方面的需求,建议禁用

# vi /etc/sysconfig/selinux
SELINUX=disabled
SELINUXTYPE=targeted

5. 创建mysql帐号和用户组

# groupadd mysql
# useradd -g mysql mysql

6. 创建安装目录

# mkdir -p /data/mysqldata/{3306/{data,tmp,binlog,logs,redo-log,undo-log},backup,scripts}
# chown -R mysql:mysql /data/mysqldata

7. 安装mysql软件

# tar -zxvf mysql-5.6.15.tar.gz
# cd mysql-5.6.15
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql56 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DCOMPILATION_COMMENT='LOTTU' \
-DWITH_READLINE=ON \
-DSYSCONFDIR=/data/mysqldata/3306 \
-DMYSQL_UNIX_ADDR=/data/mysqldata/3306/mysql.sock

若编译过程总出现错误或者参数变更要重新配置,用通过rm删除源码包下的Cmakecache.txt文件重新执行cmake;或者直接删除源码目录重新解压缩并进行编译配置。

# make && make install

make是用来编译的,它从Makefile中读取指令,然后编译
make install是用来安装的,它也是从Makefile中读取指令,将软件安装到指定的位置。

常用参数:
-DCMAKE_INSTALL_PREFIX:用于指定软件的安装路径。默认安装到/usr/local/mysql下。
-DDEFAULT_CHARSET 指定mysql服务的默认字符集。默认为latin1,也可以在mysql服务启动时通过指定character_set_server参数进行设置
-DDEFAULT_COLLATION 指定mysql服务的默认校对规则,本参数的默认值为latin1_swedish_ci也可以在启动时通过colloation_server参数进行设置
-DENABLED_LOCAL_INFILE 是否允许从客户端本地加载数据到mysql服务端,专用于LOAD DATA INFILE语句,默认是不允许的。
-DENABLED_PROFILING 是否启动query profiling 专用于show profile和show profiles语句,默认是启用的。
-DMYSQL_DATADIR 指定mysql数据库数据文件的存储路径,这一选项可在mysql服务启动时通过datadir参数进行配置
-DSYSCONFDIR 指定mysql参数文件的默认位置,可在mysql服务启动时通过default-file参数进行设置。
-DWITH_xxx_STORAGE_ENGINE 静态编译某存储引擎。MyISAM、MERGE、MEMORY及CSV存储引擎默认就会被编译只服务端无需指定。另外PARTITION指定是否允许支持分区,PERFSCHEMA则是Performance_schema库
-DWITHOUT_xxx_STORAGE_ENGINE 用于指定不编译的存储引擎
-DWITH_EXTRA_CHARSETS 指定附加支持的字符集,默认是all全部
-DINSTALL_BINDIR 指定mysql各项命令的存储路径,默认在CMAKE_INSTALL_PREFIX/bin下
-DINSTALL_DOCDIR 指定mysql文档的存储路径 默认在CMAKE_INSTALL_PREFIX/docs下
-DINSTALL_INCLUDERDIR 指定头文件的存储路径 默认在CMAKE_INSTALL_PREFIX/include下
-DINSTALL_LIBDIR 指定链接文件的存储路径 默认在CMAKE_INSTALL_PREFIX/lib下
-DINSTALL_MANDIR 指定用户手册的存储路径 默认在CMAKE_INSTALL_PREFIX/man下
-DINSTALL_PLUGINDIR 指定Plugin的存储路径 默认在CMAKE_INSTALL_PREFIX/plugin下
-DINSTALL_SBINDIR 指定服务端执行脚本的存储路径 默认在CMAKE_INSTALL_PREFIX/bin下
-DINSTALL_SCRIPTDIR 指定mysql自带的mysql_install_db脚本的存储路径 默认在CMAKE_INSTALL_PREFIX/scripts下
-DINSTALL_SQLBENCHDIR 指定sql-bench存储路径 默认在CMAKE_INSTALL_PREFIX下
-DINSTALL_SUPPORTFILESDIR 指定mysql自带的附加支持类文件的存储路径 默认在CMAKE_INSTALL_PREFIX/support-files
-DMYSQL_TCP_PORT 指定mysql数据库提供服务的TCP/IP端口 默认3306。可在mysql启动时通过port参数进行设置。
-DMYSQL_UNIX_ADDR 指定套接字文件的存储路径 默认在/tmp/mysql.sock目录下,可在mysqk服务启动时通过socket参数进行设置
-DCOMPILATION_COMMENT 指定编译信息
-DWITH_READLINE 指定输入输出的处理方式,在5.1之前版本无需单独处理,默认就是使用readline方式,5.5之后MYSQL编译时默认使用
libedit处理输入和输出,可能导致当前环境登录mysql命令行模式后无法输入中文(仅针对当前编译环境,其他客户端不受影响)因此编译时需要指定其以readline方式处理
mysql软件安装完成;

8. 安装软件后续工作

# chown -R mysql:mysql /usr/local/mysql56
# vi /home/mysql/.bash_profile
export LANG=zh_CN.GB18030
export PATH=/usr/local/mysql56/bin:$PATH

9. 配置参数文件

在/data/mysqldata/3306目录下;创建my.cnf文件

#vi /data/mysqldata/3306/my.cnf
[client]
port=3306
socket=/data/mysqldata/3306/mysql.sock #The MySQL server
[mysqld]
port=3306
user=mysql
socket=/data/mysqldata/3306/mysql.sock
pid-file=/data/mysqldata/3306/es_mysql1.pid
basedir=/usr/local/mysql56
datadir=/data/mysqldata/3306/data
tmpdir=/data/mysqldata/3306/tmp
open_files_limit=500
explicit_defaults_for_timestamp
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES #Buffer
max_allowed_packet=32M
max_heap_table_size=32M
net_buffer_length=8k
sort_buffer_size=2M
join_buffer_size=4M
read_buffer_size=2M
read_rnd_buffer_size=16M #log
log-bin=/data/mysqldata/3306/binlog/mysql-bin
binlog_cache_size=16M
max_binlog_cache_size=64M
max_binlog_size=64M
binlog_format=row
log_output=FILE
log-error=/data/mysqldata/3306/logs/mysql-error.log
slow_query_log=1
slow_query_log_file=/data/mysqldata/3306/logs/slow_query.log
general_log=0
general_log_file=/data/mysqldata/3306/logs/general_query.log
expire-logs-days=14 #InnoDB
innodb_data_file_path=ibdata1:1024M:autoextend
innodb_log_file_size = 32M
innodb_log_files_in_group =6
innodb_buffer_pool_size = 128M
sync_binlog = 8
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
innodb_log_group_home_dir=/data/mysqldata/3306/redo-log/
innodb_undo_directory=/data/mysqldata/3306/undo-log/ [mysql]
no-auto-rehash
prompt=(\u@\h) [\d]>\
default-character-set=gbk 参数可以到网上找查考..本环境是在虚拟机上面搭建的。

10. 初始化mysql数据库

# /usr/local/mysql56/scripts/mysql_install_db --datadir=/data/mysqldata/3306/data --basedir=/usr/local/mysql56

11. 启动mysql数据库

# mysqld_safe  --defaults-file=/data/mysqldata/3306/my.cnf &

12. 配置mysql

delete from mysql.user where (user,host) not in (select 'root','localhost');
update mysql.user set user='system',password=password('li0924');
flush privileges;

MySQL on Linux 部署手册的更多相关文章

  1. 通达OA2008从windows环境移植到linux部署手册

    通达OA2008从windows环境移植到linux中(centos5.5及以上版本) OA系统拓扑图: 环境搭建(安装lamp环境) 1.安装xampp集成lamp包xampp-linux-1.6. ...

  2. ProxySQL实现Mysql读写分离 - 部署手册

    ProxySQL是一个高性能的MySQL中间件,拥有强大的规则引擎.ProxySQL是用C++语言开发的,也是percona推的一款中间件,虽然也是一个轻量级产品,但性能很好(据测试,能处理千亿级的数 ...

  3. LVS+MYCAT+读写分离+MYSQL主备同步部署手册

    LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1          配置MYSQL主备同步…. 2 1.1       测试环境… 2 1.2       配置主数据库… 2 1.2.1  ...

  4. 【转载】LVS+MYCAT+读写分离+MYSQL主备同步部署手册(邢锋)

    LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1          配置MYSQL主备同步…. 2 1.1       测试环境… 2 1.2       配置主数据库… 2 1.2.1  ...

  5. 部署WEB项目到服务器(三)安装mysql到linux服务器(Ubuntu)详解

    突发奇想,想在自己电脑上部署一个web网站. 1,首先是下载一个适合自己已安装服务器版本的mysql数据库. 这里使用网上的链接http://dev.mysql.com/downloads/mysql ...

  6. JAVAEE——BOS物流项目14:Linux部署(安装jdk、tomcat、mySQL)和扩展资料

    1 学习计划 1.Linux部署 n 安装jdk n 安装tomcat n 安装MySQL n 将项目发布到tomcat 2.扩展资料 2 Linux部署 2.1 安装jdk 第一步:获取Linux系 ...

  7. OpenStack Kilo版加CEPH部署手册

    OpenStack Kilo版加CEPH部署手册 作者: yz联系方式: QQ: 949587200日期: 2015-7-13版本: Kilo 转载地址: http://mp.weixin.qq.co ...

  8. MariaDB Galera Cluster部署手册

    MariaDB Galera Cluster部署手册 galara保证双主数据库的同步及一致性 1.环境准备 基于新部署.最小化安装centos6.5 1>  yum install opens ...

  9. Linux部署ASP.NET 5 (vNext)

    原文:Linux部署ASP.NET 5 (vNext) ASP.NET 5 (vNext) Linux部署   引言 工欲善其事,必先利其器. 首先,我们先明确下以下基本概念 Linux相关 Ubun ...

随机推荐

  1. HashTable和HashMap的区别详解

    一.HashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长. HashMap是非线程安全的, ...

  2. webrtc 源码结构

    api WebRTC 接口层.包括 DataChannel, MediaStream, SDP相关的接口.各浏览器都是通过该接口层调用的 WebRTC. call 存放的是 WebRTC “呼叫(Ca ...

  3. im ui框架调研,对比

    1, https://github.com/jpush/aurora-imui 极光的 支持 Android/iOS/RN 提供了消息列表.输入视图 功能不多, 2,https://github.co ...

  4. 使用 Gearman 实现分布式处理

    因为近来在研究 Mogilefs 的分布文件系统,在读读这个的源码,另外,为公司新设计了一个下载的系统,所以更加要深入研究一下,因为这个好东西是 Perl 写的,真不容易,在读这个的时间发现了几个好东 ...

  5. Gearman的使用

    对于分布式网络环境或者有大量任务的应用,我们需要将任务在不同的服务器之间进行分布,这个时候正好是Gearman发挥实力的时候.虽然我们也可以使用MQ队列再加一些自己实现的调度算法来将任务进行分发,但是 ...

  6. [spark 快速大数据分析读书笔记] 第一章 导论

    [序言] Spark 基于内存的基本类型 (primitive)为一些应用程序带来了 100 倍的性能提升.Spark 允许用户程序将数据加载到 集群内存中用于反复查询,非常适用于大数据和机器学习. ...

  7. Sword pcre库函数学习三

    14.pcre_get_substring_list 原型: #include <pcre.h> int pcre_get_substring_list(const char *subje ...

  8. Qt添加驱动——Qt数据库之添加MySQL驱动插件

    Qt数据库之添加MySQL驱动插件(1) 现在可用的数据库驱动只有3种,在Qt中,我们需要自己编译其他数据库驱动的代码,让它们以插件的形式来使用.下面我们就以现在比较流行的MySQL数据库为例,说明一 ...

  9. svn -- svn简介

    一.为什么需要SVN 你们在做中级项目中,都是采用小组合作开发的?那么说说你们在后期整合中遇到问题? 主要应用于: 1.协作开发 2.远程协作 3.版本回退 二.什么是SVN l svn全称SubVe ...

  10. application.properties详解 --springBoot配置文件

    本文转载:http://blog.csdn.net/lpfsuperman/article/details/78287265###; # spring boot application.propert ...