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. postgresql远程连接中断的处理

    在网络上连接远程服务器postgresql时,不活动时间稍长就会自动断开连接,不利于操作. 琢磨了一下,服务器上使用以下网络配置时,解决了这个问题.   #man 7 tcp   net.ipv4.t ...

  2. Linux 套接字与文件描述符

    端口和套接字,用于确定指定主机上的哪个本地进程使用了哪个协议和哪台远程主机上的哪个进程进行了通信.端口和套接字的使用可以基于以下几点: ①为每个应用过程分配一个过程标识符(Process ID),每次 ...

  3. FaceAlignment blog

    https://blog.csdn.net/app_12062011/article/category/7574425 https://www.jianshu.com/p/e4b9317a817f

  4. 【转】【Android】Android Studio打包全攻略

    项目写完了,现在需要把应用上传到市场,问题出现—怎么把代码变成.apk(Android的可安装文件).1. 创建签名文件2. 填写好签名参数3. 生成APK注意:签名的密码和密匙的密码注意保管,不要忘 ...

  5. GROUP BY、HAVING、AS 的用法小例子

    需求: 查询选休了5门课程的学生的姓名 分析: 1. 先从 t_sc 表中查出 选了5门课的学生的学号: SELECT COUNT(code) AS countCourse,sid FROM t_sc ...

  6. Java如何停止线程?

    在Java编程中,如何停止线程? 以下示例演示了如何通过创建一个用户定义的方法run()方法和Timer类来停止线程. package com.yiibai; import java.util.Tim ...

  7. e610. Setting Focus Traversal Keys in a Component

    When the focus is on a component, any focus traversal keys set for that component override the defau ...

  8. 嵌入式开发之hi3519--- pcie dma和dma cache 缓存更新sync memery

    http://blog.csdn.net/likeping/article/details/42235111 linux下dma 管理 http://blog.csdn.net/skyflying20 ...

  9. python_装饰器模式

    装饰器模式定义:动态地给一个对象添加一些额外的职责. 在Python中Decorator mode可以按照像其它编程语言如C++, Java等的样子来实现,但是Python在应用装饰概念方面的能力上远 ...

  10. Riak

    出处:http://www.oschina.net/p/riak Riak是以 Erlang 编写的一个高度可扩展的分布式数据存储,Riak的实现是基于Amazon的Dynamo论文,Riak的设计目 ...