MySQL 5.7.10编译过程

回复 收藏
本帖最后由 ankang 于 2016-3-23 01:08 编辑

操作系统:CentOS 6.5(64位 vm虚拟机)
MySQL 安装版本 5.7.10
MySQL 从 5.5 版本开始,通过 ./configure 进行编译配置方式已经被取消,取而代之的是 cmake 工具。
因此,我们首先要在系统中源码编译安装cmake工具。

1. 安装cmake
  # cd /usr/local/src
  # wget https://www.cmake.org/files/v3.4/cmake-3.4.1.tar.gz
  # tar zxvf cmake-3.4.1.tar.gz
  # cd cmake-3.4.1

  # ./configure --prefix=/usr/local/cmake
  # make && make install

2. 确保以下所需系统软件包已经被安装
  通过 rpm -qa | grep name 的方式验证以下软件包是否已全部安装。
  gcc* gcc-c++* autoconf* automake* zlib* libxml* ncurses-devel* libmcrypt* libtool*
  如果缺少相关的软件包,可通过yum -y install 的方式在线安装,或直接从系统安装光盘中找到并通过rpm -ivh 的方式安装。或者
使用yum安装需要的软件包:(重要)
# yum install –y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c++ libaio libaio-devel bzr bison libtool ncurses5-devel ncurses-devle

3. 安装前的系统设置
  // 建立 mysql 安装目录及数据存放目录
  # mkdir /usr/local/mysql  // 安装文件目录
  # mkdir /data/mysql/log  // 二进制日志目录,主从同步用
  # mkdir /data/mysql/data  // 数据库数据目录

  // 创建用户和用户组
  # groupadd mysql
  # useradd -M -s /sbin/nologin -g mysql mysql

  // 赋予数据存放目录权限
  # chown mysql:mysql -R /data/mysql/log
  # chown mysql:mysql -R /data/mysql/data

4. 安装 BOOST
  # cd /usr/local/src
  # wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
  # tar -zxvf boost_1_59_0.tar.gz -C /usr/local/
  # mv /usr/local/boost_1_59_0 /usr/local/boost

5. 编译安装 MySQL 5.7.10
  通过 http://www.mysql.com/downloads/mysql 官方网址或国内的sohu镜像下载软件包。

  # cd /usr/local/src
  # wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.10.tar.gz
  # tar zxvf mysql-5.7.10.tar.gz
  # cd mysql-5.7.10

  # cmake \
   -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \  // 指定MySQL程序的安装目录
   -DMYSQL_DATADIR=/data/mysql/data \  // 数据文件目录
   -DDEFAULT_CHARSET=utf8 \  // 指定服务器默认字符集
   -DDEFAULT_COLLATION=utf8_general_ci \  // 指定服务器默认的校对规则
   -DENABLED_LOCAL_INFILE=ON \  // 指定是否允许本地执行 LOAD DATA INFILE
   -DWITH_MYISAM_STORAGE_ENGINE=1 \  // 指定静态编译到 MySQL 的存储引擎:MYISAM
   -DWITH_INNOBASE_STORAGE_ENGINE=1 \  // 指定静态编译到 MySQL 的存储引擎:INNODB
   -DWITH_ARCHIVE_STORAGE_ENGINE=1 \  // 指定静态编译到 MySQL 的存储引擎:ARCHIVE
   -DWITH_MEMORY_STORAGE_ENGINE=1 \  // 指定静态编译到 MySQL 的存储引擎:MEMORY
   -DWITH_BOOST=/usr/local/boost

  # make
  # make install



6. 配置并初始化数据库
  创建 my.cnf 配置文件
  # mkdir /var/log/mysql
  # chown mysql:mysql -R /var/log/mysql

  # mkdir /var/run/mysql
  # chown mysql:mysql -R /var/run/mysql

  # cp support-files/my-default.cnf /etc/my.cnf  // MySQL 默认配置文件路径
  配置内容可参考:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
# The following options will be passed to all MySQL clients
[client]
port     = 3306
socket   = /tmp/mysql.sock
# The MySQL server
[mysqld]
table_open_cache        = 64
max_allowed_packet      = 16M
myisam_repair_threads   = 1
myisam_sort_buffer_size = 8M
# File Path
pid-file  = /var/run/mysql/mysql.pid
log-error = /var/log/mysql/error.log
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
innodb_buffer_pool_size = 128M
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
log-bin = /data/mysql/log/mysql-bin
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....
# binary logging format - mixed recommended
binlog_format = mixed
# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
key_buffer_size      = 16M
read_buffer_size     = 2M
sort_buffer_size     = 2M
join_buffer_size     = 16M
read_rnd_buffer_size = 2M
# Other Switch Settings
performance_schema   = OFF
# Recommended in standard MySQL setup
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
read_buffer      = 2M
write_buffer     = 2M
key_buffer_size  = 20M
sort_buffer_size = 20M
 
初始化数据库,会自动生成一个随机密码(拷贝,后续用)
  # cd /usr/local/mysql
  # bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data

  复制生成 Mysql 服务器的自动与停止脚本
  # cp support-files/mysql.server /etc/init.d/mysql

  将 Mysql 服务添加到服务器管理中,并设置自启动状态:
  #chkconfig --list | grep mysql  // 查询当前是否有mysql服务
  #chkconfig --add mysql  // 添加mysql服务到服务器管理中
  #chkconfig --list | grep mysql  // 查询此时mysql服务器的启动状态
  #chkconfig --level 35 mysql on  // 设置在3、5运行级别也自启动


可以参考
http://www.apelearn.com/bbs/thread-11558-1-1.html

  启动MySQL
  #service mysql start 或 #/etc/init.d/mysql start
  如果启动失败修改 mysql 权限:#chmod 755 /etc/init.d/mysql

  通过命令行登录管理MySQL服务器(提示输入密码时输入之前拷贝的密码):
  # /usr/local/mysql/bin/mysql -u root -p

  登陆后,初始化 MySQL 数据库的用户密码
  mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '$NEW-PASSWORD';
  mysql> flush privileges;



2016-03-22 09:23 举报
已邀请:
0

ilinux

赞同来自:

收藏了{:6_151:}

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: