centos6.6 编译安装MySQL5.6

        

【本文档所介绍的内容适用于公司测试/生产等常见的MySQL数据库环境部署】        

一:环境部署前准备:

1.1相关软件以及系统

系统要求:Centos 6.6 (64位)

相关中间件:  mysql-5.6.23

1.2相关系统依赖包安装检查准备

1.2.1 检查系统自带mysql是否安装

# rpm -qa | grep mysql

如有安装,请使用以下命令卸载相关程序 

# yum remove  mysql

1.2.2 安装系统相关的编译环境:mysql编译前需要的依赖包

yum install wget gcc gcc-c++ cmake ncurses ncurses-devel patch autoconf automake libtool* openssl openssl-devel

二:MySQL环境部署正式安装:

2.1编译安装MySQL

MySQL5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具编译。

因此,我们首先要在系统中源码编译安装cmake工具,安装cmake时可以源码安装也可以yum 安装,这里采用的yum形式安装cmake

2.1.1 mysql安装前准备(安装mysql前先需要添加相关的mysql运行账号及相关安装目录和权限)

<--添加mysql运行账号-->

# groupadd mysql                             //添加mysql服务组账号;
# useradd -g mysql -M -s /sbin/nologin mysql //添加mysql服务服务账号,设置不登陆系统;

<--添加mysql程序相关目录-->

# mkdir -p /usr/local/mysql        //创建mysql安装目录;
# mkdir -p /usr/local/mysql/data   //创建mysql数据存放目录;

2.1.2编译安装mysql(默认包放在/root目录下,包统一解压到/usr/local/src)

# tar -zxvf mysql-5.6.23.tar.gz -C /usr/local/src/
# cd /usr/local/src/mysql-5.6.23/
# cmake \
 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
 -DDEFAULT_CHARSET=utf8 \
 -DDEFAULT_COLLATION=utf8_general_ci \
 -DEXTRA_CHARSETS=all \
 -DWITH_MYISAM_STORAGE_ENGINE=1 \
 -DWITH_INNOBASE_STORAGE_ENGINE=1 \
 -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
 -DWITH_MEMORY_STORAGE_ENGINE=1 \
 -DWITH_FEDERATED_STORAGE_ENGINE=1 \
 -DWITH_READLINE=1 \
 -DENABLED_LOCAL_INFILE=1 \
 -DMYSQL_DATADIR=/usr/local/mysql/data \
 -DMYSQL_USER=mysql \
 -DMYSQL_TCP_PORT=3306 \
 -DSYSCONFDIR=/etc \
 -DWITH_SSL=yes
# make && make install

《提示:如果以上编译编译失败的话,重新编译需要再执行以下命令,并清除相关文件,内容如下:

# make clean
# rm -f  CMakeCache.txt

2.1.3 给mysql相关目录设置属主权限

# chown -R mysql:mysql /usr/local/mysql       //设置mysql安装目录的属主;
# chown -R mysql:mysql /usr/local/mysql/data  //设置mysql数据存放目录的属主;

2.1.4 初始化mysql数据库准备

# cd /usr/local/mysql/     //设置mysql安装目录的属主;
# scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql  
                           //初始化mysql数据库;

2.1.5 添加mysql数据库配置文件模板

# cd /usr/local/mysql/                        //进入到安装目录拷贝数据库样例模板;
# cp support-files/my-medium.cnf /etc/my.cnf  //这里样例模板可以是生产也可以是开发;

2.1.6 添加mysql服务启动到系统服务里,并优化mysql命令调用

<--添加mysql服务启动到系统服务,并开机自启动-->

# cd /usr/local/mysql/
# cp support-files/mysql.server /etc/init.d/mysqld  //拷贝mysql服务脚本到系统;
# vim /etc/init.d/mysqld 找到如下内容并添加相关路径
  basedir=/usr/local/mysql             //mysql安装目录;
  datadir=/usr/lcoal/mysql/data        //mysql数据存放目录;
# chkconfig -add mysqld                 //添加mysql服务到系统服务;
# chkconfig --level 235 mysqld on      //设置mysql开机自启动;

<--优化mysql命令调用-->

修改/etc/profile文件,在文件末尾添加

# PATH=/usr/local/mysql/bin:$PATH
# export PATH
# wq!                                   //保存
# source /etc/profile

2.1.7 启动mysql服务,并设置管理员账号密码

# service mysqld start         //启动MySQL数据库服务
# mysql_secure_installation    //对MySQL进行安全设置(包括数据库密码以及相关的库权限设置)
<-------此处省略--------->   //这里是运行后相关的提示信息
Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorisation.

You already have a root password set, so you can safely answer 'n'.

Change the root password? [Y/n] y              (设置MySQL管理员root密码)
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!
Remove anonymous users? [Y/n] y                (移除匿名用户,选择Y)    
 ... Success!
<-------此处省略--------->
Disallow root login remotely? [Y/n] y          (移除管理员远程访问权限,选择Y)
 ... Success!
<-------此处省略--------->
Remove test database and access to it? [Y/n] y (移除test测试数据库,选择Y)
<-------此处省略--------->
Reload privilege tables now? [Y/n] y           (刷新数据库权限,选择Y)
 ... Success!

Cleaning up...

三:测试数据库是否可以正常工作

# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 29269
Server version: 5.5.43-log Source distribution

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>

看到这些提示,说明MySQL已经正常运行,MySQL环境编译安装ok!


  CentOS 6.4下编译安装MySQL 5.6.14