一、准备工作:
1、查询系统中已安装的MySQL相关软件包
[[email protected] ~]# rpm -qa|grep -i mysql
2、如果MySQL已开启,停止运行MySQL服务器
[[email protected] ~]#service mysqld stop
3、卸载系统包
[[email protected] ~]# rpm -e perl-DBD-MySQL-4.013-3.el6.x86_64 --nodeps
[[email protected] ~]# rpm -e mysql-libs-5.1.66-2.el6_3.x86_64 --nodeps
[[email protected] ~]# 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
[[email protected] ~]# 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、安装源码说依赖的库
[[email protected] ~]# 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编译器
[[email protected] ~]# cd /opt
[[email protected] ~]# tar -xvf cmake-2.8.11.1.tar.gz
[[email protected] ~]# cd cmake-2.8.11.1
[[email protected] ~]# ./bootstrap
[[email protected] ~]# make && make install
安装m4
[[email protected] ~]# tar -xvf m4-1.4.16.tar.gz
[[email protected] ~]# cd m4-1.4.16
[[email protected] ~]# ./configure && make && make install
安装bison
[[email protected] ~]# tar -xvf bison-2.7.tar.gz
[[email protected] ~]# cd bison-2.7
[[email protected] ~]# ./configure && make && make install
7、创建mysql用户与组,相关目录
[[email protected] ~]# /usr/sbin/groupadd mysql
[[email protected] ~]# /usr/sbin/useradd -g mysql mysql
[[email protected] ~]# mkdir -p /app/mysql
[[email protected] ~]# chown -R mysql:mysql /app/mysql
[[email protected] ~]# mkdir -p /data/mysqldata
[[email protected] ~]# chown -R mysql:mysql /data/mysqldata/
8、编译安装mysql
[[email protected] opt]# tar -zxvf mysql-5.6.23.tar.gz
[[email protected] opt]# cd mysql-5.6.23
[[email protected] mysql-5.6.23]# export CFLAGS="-O3 -g -fno-exceptions -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"
[[email protected] mysql-5.6.23]# export CXXFLAGS="-O3 -g -fno-exceptions -fno-rtti -static-libgcc -fno-omit-frame-pointer -fno-strict-aliasing"
[[email protected] mysql-5.6.23]# export CXX=g++
[[email protected] 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 \
[[email protected] mysql-5.6.23]# make && make install
9、初始化数据库
拷贝mysql配置文件
[[email protected] mysql-5.6.23]# cp support-files/my-default.cnf /etc/my.cnf
[[email protected] ~]# cd /app/mysql/scripts/
[[email protected] scripts]# ./mysql_install_db --user=mysql --basedir=/app/mysql --datadir=/data/mysqldata/
10、配置环境变量
[[email protected] ~]# vim /etc/profile
PATH=/app/mysql/bin:/app/mysql/lib:$PATH
export PATH
[[email protected] ~]# source /etc/profile
11、设置开机启动
[[email protected] mysql-5.6.23]# cp support-files/mysql.server /etc/init.d/mysqld
[[email protected] mysql-5.6.23]# chkconfig --add mysqld
[[email protected] mysql-5.6.23]# chkconfig --list mysqld
mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
[[email protected] mysql-5.6.23]# chmod 755 /etc/init.d/mysqld
[[email protected] mysql-5.6.23]# service mysqld start
Starting MySQL..[确定]
12、初始化root密码
[[email protected] ~]#/app/mysql/bin/mysqladmin -u root password ‘123456‘
遇到问题 如果不能初始化密码,出现ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO)
[[email protected] ~]# /etc/init.d/mysql stop
[[email protected] ~]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
[[email protected] ~]# mysql
UPDATE user SET password=PASSWORD(‘123456‘) WHERE user=‘root‘;
FLUSH PRIVILEGES;
[[email protected] ~]# mysql -uroot -p123456
13、访问授权
[[email protected] ~]#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 [email protected]‘%‘ identified by "123456";
mysql> flush privileges;
mysql> select User,Password,Host from user;