一、准备工作:

1、查询系统中已安装的MySQL相关软件包  

[root@MySQL ~]# rpm -qa|grep -i  mysql

2、如果MySQL已开启,停止运行MySQL服务器    

[root@MySQL ~]#service mysqld stop             

3、卸载系统包

[root@MySQL ~]# rpm -e perl-DBD-MySQL-4.013-3.el6.x86_64 --nodeps

[root@MySQL ~]# rpm -e mysql-libs-5.1.66-2.el6_3.x86_64 --nodeps

[root@MySQL ~]# rpm -e qt-mysql-4.6.2-25.el6.x86_64 --nodeps


二、安装编译

1、MySQL编译依赖

(1)、必备的包和工具

    gcc/g++ :MySQL 5.6开始,需要使用g++进行编译。

    cmake  :MySQL 5.5开始,使用cmake进行工程管理,cmake需要2.8以上版本。

    bison   :MySQL语法解析器需要使用bison进行编译。

    ncurses-devel :用于终端操作的开发包。

    zlib    :MySQL使用zlib进行压缩。

(2)、功能需要的包

    libxml   :用于XML输入输出方式的支持。

    openssl  :使用openssl安全套接字方式通信。

    dtrace   :用于诊断MySQL问题。

2、MySQL基本编译参数

cmake 参数说明手册参考:http://www.blogjava.net/kelly859/archive/2012/09/04/387005.html

--CMAKE_BUILD_TYPE  //编译的版本类型:RelWithDebInfo和Debug,不同之处是RelWithDebInfo会进行优化。

--CMAKE_INSTALL_PREFIX //指定make install安装的目标路径。

--SYSCONFDIR //指定配置文件的默认路径。

--MYSQL_DATADIR //指定data目录的默认路径.

--WITH_DEBUG // 指定是否有debugging信息,一般用于源码调试时,打开WITH_DEBUG,生产环境关闭。

--ENABLED_PROFILING //指定是否可以使用show profile显示操作执行的详细信息。

--DEFAULT_CHARSET //指定默认字符集,可以在启动的配置文件中指定。

--DEFAULT_COLLATION // 指定默认字符比较、排序的规则

--WITH_EXTRA_CHARSETS //指定其他可能使用的字符集。

--WITH_SSL //指定SSL的类型,从5.6.6开始默认bundled类型,此外也可以指定SSL库的路径地址。

--WITH_ZLIB //指定zlib的类型,用于压缩功能。

--WITH_storage_STORAGE_ENGINE //指定编译支持的存储引擎,默认支持MyISAM,MERGE,MEMORY,CSV存储引擎。

--ENABLED_LOCAL_INFILE //指定是否允许使用load data infile功能。

--WITH_EMBEDDED_SERVER //指定是否编译libmysqld嵌入式库

--INSTALL_LAYOUT //指定安装的布局类型。


3、安装信息

   操作系统 RedHat 6.4

   [root@MySQL ~]# cat /etc/issue

   Red Hat Enterprise Linux Server release 6.4 (Santiago)

   MySQL 版本 5.6.23

   下载地址:http://www.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.23.tar.gz/from/http://cdn.mysql.com/

   安装目录为:/app/mysql/

   数据目录为:/data/mysqldata 

   存储引擎包括:MEMORY,MyISAM,InnoDB等 

   字符集为:UTF8

4、安装源码说依赖的库

   [root@MySQL ~]# yum -y install gcc gcc-c++ autoconf   zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* 

5、下载所需软件包:

  #将下载的文件都放到/opt目录下,如下

  cmake:http://www.cmake.org/files/v2.8/cmake-2.8.11.1.tar.gz

  bison:http://ftp.gnu.org/gnu/bison/bison-2.7.tar.gz

  m4:http://ftp.gnu.org/gnu/m4/m4-1.4.16.tar.gz

6、所需包

  安装cmake编译器

  [root@MySQL ~]# cd /opt

  [root@MySQL ~]# tar -xvf cmake-2.8.11.1.tar.gz

  [root@MySQL ~]# cd cmake-2.8.11.1

  [root@MySQL ~]# ./bootstrap

  [root@MySQL ~]# make && make install


安装m4

  [root@MySQL ~]# tar -xvf m4-1.4.16.tar.gz

  [root@MySQL ~]# cd m4-1.4.16

  [root@MySQL ~]# ./configure && make && make install


安装bison

  [root@MySQL ~]# tar -xvf bison-2.7.tar.gz

  [root@MySQL ~]# cd bison-2.7

  [root@MySQL ~]# ./configure && make && make install

7、创建mysql用户与组,相关目录

[root@MySQL ~]# /usr/sbin/groupadd mysql

[root@MySQL ~]# /usr/sbin/useradd -g mysql mysql

[root@MySQL ~]# mkdir -p /app/mysql

[root@MySQL ~]# chown -R mysql:mysql /app/mysql

[root@MySQL ~]# mkdir -p /data/mysqldata

[root@MySQL ~]# chown -R mysql:mysql /data/mysqldata/ 


8、编译安装mysql

[root@MySQL opt]# tar -zxvf mysql-5.6.23.tar.gz

[root@MySQL opt]# cd mysql-5.6.23

[root@MySQL mysql-5.6.23]# export CFLAGS="-O3 -g -fno-exceptions -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"

[root@MySQL mysql-5.6.23]# export CXXFLAGS="-O3 -g -fno-exceptions -fno-rtti -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"

[root@MySQL mysql-5.6.23]# export CXX=g++

[root@MySQL mysql-5.6.23]# cmake -DCMAKE_INSTALL_PREFIX=/app/mysql/ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

     -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=utf8,gbk  \

     -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 \

     -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysqldata/ -DSYSCONFDIR=/etc \

     -DWITH_SSL=bundled -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 \

     -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DENABLE_DOWNLOADS=1 \

[root@MySQL mysql-5.6.23]# make && make install

9、初始化数据库

拷贝mysql配置文件

[root@MySQL mysql-5.6.23]# cp support-files/my-default.cnf /etc/my.cnf 

[root@MySQL ~]# cd /app/mysql/scripts/

[root@MySQL scripts]# ./mysql_install_db --user=mysql  --basedir=/app/mysql --datadir=/data/mysqldata/ 


10、配置环境变量

[root@MySQL ~]# vim /etc/profile

PATH=/app/mysql/bin:/app/mysql/lib:$PATH

export PATH

[root@MySQL ~]# source /etc/profile


11、设置开机启动

[root@MySQL mysql-5.6.23]# cp support-files/mysql.server /etc/init.d/mysqld

[root@MySQL mysql-5.6.23]# chkconfig --add mysqld

[root@MySQL mysql-5.6.23]# chkconfig --list mysqld

mysqld          0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

[root@MySQL mysql-5.6.23]# chmod 755 /etc/init.d/mysqld 

[root@MySQL mysql-5.6.23]# service mysqld start

Starting MySQL..[确定]


12、初始化root密码

[root@MySQL ~]#/app/mysql/bin/mysqladmin -u root password '123456'


遇到问题 如果不能初始化密码,出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

[root@MySQL ~]# /etc/init.d/mysql stop

[root@MySQL ~]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

[root@MySQL ~]# mysql

UPDATE user SET password=PASSWORD('123456') WHERE user='root';

FLUSH PRIVILEGES;

[root@MySQL ~]# mysql -uroot -p123456


13、访问授权

[root@MySQL ~]#mysql/bin/mysql -uroot -p         #敲入该命令后,屏幕会提示输入密码,输入上一步设置的密码

    删除root密码为空的记录

    mysql> use mysql;

    mysql> delete from user where password='';

    mysql> flush privileges;

    配置mysql允许root远程登录                                  #登录

    mysql> grant all privileges on *.* to root@'%' identified by "123456";

    mysql> flush privileges;

    mysql> select User,Password,Host from user;