CentOS6.4+MySQL-5.6.12 安装详解


大纲
一、安装方式分类
二、具体安装方式详解

MySQL 5.5 三大安装方式:【二进制、源代码编译 和 RPM 包】 安装步骤及优缺点比较

  • 源码安装
  • 通用二进制包安装
  • RPM包安装

一、Mysql安装方式分类
1.源码包安装
从MySQL5.5开始就要用cmake安装了,已不能用./configure编译安装,我们查看一下mysql5.6.12的安装目录,从下面的安装目录我们可以看到,里面根本没有configure文件,下面我们来说说cmake,

[root@mysql mysql-5.6.12]# ls
BUILD          config.h.cmake      extra              libmysqld    packaging  sql-bench      unittest
BUILD-CMAKE    configure.cmake      include            libservices  plugin    sql-common    VERSION
client          COPYING              INSTALL-SOURCE      man          README    storage        vio
cmake          dbug                INSTALL-WIN-SOURCE  mysql-test  regex      strings        win
CMakeLists.txt  Docs                libevent            mysys        scripts    support-files  zlib
cmd-line-utils  Doxyfile-perfschema  libmysql            mysys_ssl    sql        tests

cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。

2.通用二进制包安装

通用二进制包安装说明软件包已经编译好,不需要我们重新编译,我们只要解压一下,进行简单配置便可以运行使用!

3.RPM包安装
这个安装我们不过多说明,大家应该都知道!好了,下面我们就来具体说明这三种安装!

二、具体安装方式详解

  • 源码安装
  • 通用二进制包安装
  • RPM包安装

源码包安装
1.安装cmake(最新的cmake-2.8.11.2)
123456789101112131415161718 [root@mysql src]# tar xf cmake-2.8.11.2.tar.gz
[root@mysql src]# cd cmake-2.8.11.2
[root@mysql cmake-2.8.11.2]# ls
bootstrap                  CTestCustom.cmake.in
ChangeLog.manual            CTestCustom.ctest.in
ChangeLog.txt              DartConfig.cmake
CMakeCPack.cmake            DartLocal.conf.in
CMakeCPackOptions.cmake.in  Docs
CMakeGraphVizOptions.cmake  doxygen.config
CMakeLists.txt              Example
CMakeLogo.gif              Modules
cmake_uninstall.cmake.in    Readme.txt
CompileFlags.cmake          Source
configure                  Templates
Copyright.txt              Tests
CTestConfig.cmake          Utilities
[root@mysql cmake-2.8.11.2]# ./bootstrap
[root@mysql cmake-2.8.11.2]# make && make install

2.安装编译MySQL-5.6.12
说明:cmake指定编译选项的方式不同于make,其实现方式对比如下
./configure 对应的是 cmake .
./configure --help 对应的是 cmake . -LH 或者是 ccmake .
3.创建mysql的用户与组
12 [root@mysql ~]# groupadd -r mysql
[root@mysql ~]# useradd -g mysql -r  -s /sbin/nologin mysql

4.创建mysql的数据目录(创建逻辑卷存放数据)

[root@mysql ~]# fdisk /dev/sda #创建一个新分区类型为8e
Command (m for help): p
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000a0a2
  Device Boot      Start        End      Blocks  Id  System
/dev/sda1  *          1          26      204800  83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        1301    10240000  83  Linux
/dev/sda3            1301        1938    5120000  83  Linux
/dev/sda4            1938        2611    5405696    5  Extended
/dev/sda5            1939        2066    1024000  82  Linux swap / Solaris
/dev/sda6            1938        1938        1129+  83  Linux
/dev/sda7            2066        2327    2099724  8e  Linux LVM
[root@mysql ~]# partx -a /dev/sda #让内核重新读取一下分区
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
BLKPG: Device or resource busy
error adding partition 4
BLKPG: Device or resource busy
error adding partition 5
[root@mysql ~]# fdisk -l #查看新建的分区
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0000a0a2
  Device Boot      Start        End      Blocks  Id  System
/dev/sda1  *          1          26      204800  83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        1301    10240000  83  Linux
/dev/sda3            1301        1938    5120000  83  Linux
/dev/sda4            1938        2611    5405696    5  Extended
/dev/sda5            1939        2066    1024000  82  Linux swap / Solaris
/dev/sda6            1938        1938        1129+  83  Linux
/dev/sda7            2066        2327    2099724  8e  Linux LVM
Partition table entries are not in disk order
[root@mysql ~]# yum install -y lvm2 #安装lvm
[root@mysql ~]# pvcreate /dev/sda7 #创建物理卷
  Physical volume "/dev/sda7" successfully created
[root@mysql ~]# vgcreate myvg /dev/sda7 #创建卷组
  Volume group "myvg" successfully created
[root@mysql ~]# lvcreate -L 1G -n mydata myvg #创建逻辑卷
  Logical volume "mydata" created
[root@mysql ~]# lvs #查看逻辑卷
  LV    VG  Attr      LSize Pool Origin Data%  Move Log Cpy%Sync Convert
  mydata myvg -wi-a---- 1.00g                                     
[root@mysql ~]# mkfs.ext4 /dev/myvg/mydata #格式化
mke2fs 1.41.12 (17-May-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe  blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376
正在写入inode表: 完成                     
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 33 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

5.挂载设置

[root@mysql ~]# mkdir /mydata #创建挂载目录
[root@mysql ~]# vim /etc/fstab  #修改挂载配置文件
#新增一行
/dev/myvg/mydata        /mydata        ext3    defaults        0 0
[root@mysql ~]# mount -a #挂载
[root@mysql ~]# mount #查看所有挂载
/dev/sda2 on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/sda3 on /data type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/myvg-mydata on /mydata type ext4 (rw)

6.数据目录配置

[root@mysql ~]# cd /mydata/
[root@mysql mydata]# mkdir data
[root@mysql mydata]# chown -R mysql.mysql data
[root@mysql mydata]# ll
总用量 20
drwxr-xr-x 2 mysql mysql  4096 7月  18 13:16 data
drwx------ 2 root  root  16384 7月  18 13:10 lost+found

7.编译安装


[root@mysql mysql-5.6.12]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/mydata/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_SSL:STRING=bundled \
-DWITH_ZLIB:STRING=bundled \
-DWITH_LIBWRAP=0 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

报错,

[root@mysql mysql-5.6.12]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=bundled -DWITH_ZLIB=bundled -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
-- Running cmake version 2.8.11.2
-- MySQL 5.6.12
-- Packaging as: mysql-5.6.12-Linux-x86_64
-- HAVE_VISIBILITY_HIDDEN
CMake Error at cmake/ssl.cmake:164 (FILE):
  file STRINGS file  "/root/src/mysql-5.6.12/OPENSSL_INCLUDE_DIR-NOTFOUND/openssl/opensslv.h"
  cannot be read.
Call Stack (most recent call first):
  CMakeLists.txt:323 (MYSQL_CHECK_SSL)
-- OPENSSL_INCLUDE_DIR = OPENSSL_INCLUDE_DIR-NOTFOUND
-- OPENSSL_LIBRARY = OPENSSL_LIBRARY-NOTFOUND
-- CRYPTO_LIBRARY = CRYPTO_LIBRARY-NOTFOUND
-- OPENSSL_MAJOR_VERSION =
CMake Error at cmake/ssl.cmake:231 (MESSAGE):
  Cannot find appropriate system libraries for SSL.  Use WITH_SSL=bundled to
  enable SSL support
Call Stack (most recent call first):
  CMakeLists.txt:323 (MYSQL_CHECK_SSL)
-- HAVE_VISIBILITY_HIDDEN
-- HAVE_VISIBILITY_HIDDEN
-- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:85 (MESSAGE):  Curses library not found.  Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on RedHat and derivates it is ncurses-devel.
Call Stack (most recent call first):
  cmake/readline.cmake:128 (FIND_CURSES)
  cmake/readline.cmake:202 (MYSQL_USE_BUNDLED_EDITLINE)
  CMakeLists.txt:325 (MYSQL_CHECK_EDITLINE)
-- Configuring incomplete, errors occurred!

从上面的错误中我们可以很清楚的看到缺少两个依赖包,我们用yum安装一下即可!

[root@mysql mysql-5.6.12]# yum install –y openssl openssl-devel ncurses ncurses-devel

下面我们再次编译一下,可能还会报同样的错误,不要着急,遇到错误,应该是很欣慰,现在知道了,以后就有把握自己处理,不必再百度,谷歌,满世界询问了,嘿嘿!

[root@mysql mysql-5.6.12]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=bundled -DWITH_ZLIB=bundled -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
-- Running cmake version 2.8.11.2
-- MySQL 5.6.12
-- Packaging as: mysql-5.6.12-Linux-x86_64
-- HAVE_VISIBILITY_HIDDEN
CMake Error at cmake/ssl.cmake:164 (FILE):
  file STRINGS file  "/root/src/mysql-5.6.12/OPENSSL_INCLUDE_DIR-NOTFOUND/openssl/opensslv.h"
  cannot be read.
Call Stack (most recent call first):
  CMakeLists.txt:323 (MYSQL_CHECK_SSL)
-- OPENSSL_INCLUDE_DIR = OPENSSL_INCLUDE_DIR-NOTFOUND
-- OPENSSL_LIBRARY = OPENSSL_LIBRARY-NOTFOUND
-- CRYPTO_LIBRARY = CRYPTO_LIBRARY-NOTFOUND
-- OPENSSL_MAJOR_VERSION =
CMake Error at cmake/ssl.cmake:231 (MESSAGE):
  Cannot find appropriate system libraries for SSL.  Use WITH_SSL=bundled to
  enable SSL support
Call Stack (most recent call first):
  CMakeLists.txt:323 (MYSQL_CHECK_SSL)
-- HAVE_VISIBILITY_HIDDEN
-- HAVE_VISIBILITY_HIDDEN
-- Could NOT find Curses (missing:  CURSES_LIBRARY CURSES_INCLUDE_PATH)
CMake Error at cmake/readline.cmake:85 (MESSAGE):  Curses library not found.  Please install appropriate package,
remove CMakeCache.txt and rerun cmake.On Debian/Ubuntu, package name is libncurses5-dev, on Redhat and derivates it is ncurses-devel.
Call Stack (most recent call first):
  cmake/readline.cmake:128 (FIND_CURSES)
  cmake/readline.cmake:202 (MYSQL_USE_BUNDLED_EDITLINE)
  CMakeLists.txt:325 (MYSQL_CHECK_EDITLINE)
-- Configuring incomplete, errors occurred!

这里是因为,我们在多次运行cmake有个文件我们需要删除,删除当前目录下CMakeCache.txt文件并重新编译,再次运行cmake命令就会正常!

[root@mysql mysql-5.6.12]# rm  -rf CMakeCache.txt
[root@mysql mysql-5.6.12]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=bundled -DWITH_ZLIB=bundled -DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci

这下我们就可以顺利编译!

[root@mysql mysql-5.6.12]# make && make install

接下来请看第2页精彩内容

  • 1
  • 2
  • 3
  • 4
  • 下一页

相关内容

    暂无相关文章