从mysql 5.5开始,mysql编译采起了cmake编译,来取代原来的configure,所以,咱们下面的编译安装,也是使用cmake编译安装。
须要准备的源码包:c++
mysql源码包:mysql-5.6.14.tar.gzsql
cmake源码包:cmake-2.8.10.2.tar.gz [cmake咱们也采起编译安装,并下载最新版本]数据库
1.对于全新的系统环境,源码编译安装,须要不少包,可是,系统光盘里基本上提供了,因此,建议你们先配置yum源,这里不作演示[可参考博客里 “yum仓库配置”一文]。这里默认你们已经配置好yum源:vim
[root@client100 ~]# yum -y install gcc-c++ ncurses-devel make perl bison ncurses缓存
2.进入存放源码包的目录,解压cmake源码包安全
# 解压源码包服务器
[root@client100 tmp]# tar -xf cmake-2.8.10.2.tar.gzsocket
# 进入解压目录ide
[root@client100 tmp]# cd cmake-2.8.10.2
# 配置安装参数
[root@client100 cmake-2.8.10.2]# ./configure --prefix=/usr/local/cmake
# 编译源码
[root@client100 cmake-2.8.10.2]# gmake
# 安装
[root@client100 cmake-2.8.10.2]# make install
# 修改配置文件
[root@client100 cmake-2.8.10.2]# vim /etc/profile
# 在文件的最后,添加以下两行[即修改PATH的路径,指定cmake命令的路径]
PATH=/usr/local/cmake/bin:$PATH
export path
# 使配置文件当即生效
[root@client100 cmake-2.8.10.2]# source /etc/profile
# 执行以下操做,若是能显示具体版本,cmake就安装成功
[root@client100 cmake-2.8.10.2]# cmake --version
cmake version 2.8.10.2
3.mysql编译前,准备工做:
# 建立mysql用户组
[root@client100 tmp]# groupadd mysql
# 建立用户并加入用户组,并取消login权限
[root@client100 tmp]# useradd -g mysql -s '/sbin/nologin' mysql
# 创建mysql安装目录
[root@client100 test]# mkdir -p /usr/local/mysql
# 创建mysql数据存放目录
[root@client100 test]# mkdir -p /home/mysql/data
# 创建mysql安装目录的属主
[root@client100 mysql-5.6.14]# chown mysql.mysql -R /usr/local/mysql
# 修改mysql数据存放目录的所属者
[root@client100 mysql-5.6.14]# chown mysql.mysql -R /home/mysql/data
4.开始编译安装mysql
# 解压mysql 源码包
[root@client100 tmp]# tar -xf mysql-5.6.14.tar.gz
# 进入mysql源码包目录
[root@client100 mysql-5.6.14]# cd mysql-5.6.14
# 用cmake配置安装选项[ 每行结尾的 \ ,是由于一行写不下,换到下行继续,并去除后面的空格或回车]
[root@client100 mysql-5.6.14]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/home/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysqld.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
# /* 如下为配置参数注解 */
# /* -DCMAKE_INSTALL_PREFIX=/usr/local/mysql # 指定mysql安装位置
# /* -DMYSQL_DATADIR=/home/mysql/data # 数据文件存放位置
# /* -DSYSCONFDIR=/etc # 配置文件my.cnf的位置
# /* -DWITH_MYISAM_STORAGE_ENGINE=1 # 支持MyIASM引擎
# /* -DWITH_INNOBASE_STORAGE_ENGINE=1 # 支持InnoDB引擎
# /* -DWITH_MEMORY_STORAGE_ENGINE=1 # 支持Memory引擎
# /* -DWITH_READLINE=1 # 快捷键功能
# /* -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysqld.sock # 链接数据库socket路径
# /* -DMYSQL_TCP_PORT=3306 # 端口
# /* -DENABLED_LOCAL_INFILE=1 # 容许从本地导入数据
# /* -DWITH_PARTITION_STORAGE_ENGINE=1 # 安装支持数据库分区
# /* -DEXTRA_CHARSETS=all # 安装全部的字符集
# /* -DDEFAULT_CHARSET=utf8 # 默认字符
# /* -DDEFAULT_COLLATION=utf8_general_ci
# 开始编译
[root@client100 mysql-5.6.14]#gmake
# 安装mysql到刚才参数配置的目录
[root@client100 mysql-5.6.14]# make install
# /* 注意事项 */
从新编译时,须要清除旧的对象文件和缓存信息[若是能够,就把解压的目录删掉,从新解压目录或者执行以下操做]
# /* make clean
# /* rm -f CMakeCache.txt
# /* rm -rf /etc/my.cnf
5.后续mysql相关操做:
# 进入mysql安装目录下的脚本目录
[root@client100 /]# cd /usr/local/mysql/scripts/
# 安装mysql默认数据库,指明数据库安装目录,数据目录,用户
[root@client100 scripts]# ./mysql_install_db --basedir=/usr/local/mysql --datadir=/home/mysql/data --user=mysql
# 进入mysql配置文件目录
[root@client100 mysql]# cd /usr/local/mysql/support-files/
# 复制配置文件到/etc目录下,并更名为my.cnf[若是目录下有my.cnf文件,选择覆盖或者删除或者在上面进行修改]
[root@client100 support-files]# cp my-default.cnf /etc/my.cnf
# 修改/etc/my.cnf的属主
[root@client100 support-files]# chown mysql:mysql /etc/my.cnf
# 将安装目录属主改成mysql[上面更改,到这里又变成root属主了,因此能够选择更改成mysql]
[root@client100 support-files]# chown mysql:mysql -R /usr/local/mysql
# 修改/etc/my.cnf配置文件
[root@client100 support-files]# vim /etc/my.cnf
# 配置文件内容以下: [目前,这里只作简单配置,下篇文章会详述]
[mysqld]
innodb_buffer_pool_size = 128M
basedir =/usr/local/mysql
datadir =/home/mysql/data
port =3306
server_id =100
socket =/usr/local/mysql/mysqld.sock
join_buffer_size = 128M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 复制启动脚本文件到/etc/init.d/目录下
[root@client100 support-files]# cp mysql.server /etc/init.d/mysqld
# 修改启动脚本权限
[root@client100 support-files]#chmod 755 /etc/init.d/mysqld
# 修改启动脚本
[root@client100 support-files]# vim /etc/init.d/mysqld
# 仅修改以下两行,指定mysql安装目录,数据存放目录
basedir=/usr/local/mysql
datadir=/home/mysql/data
# 编译配置文件,将mysql相关命令路径放到PATH环境变量里
[root@client100 support-files]# vim /etc/profile
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:/usr/local/cmake/bin:$PATH
export path
# 重读配置文件,当即生效
[root@client100 support-files]# source /etc/profile
# 启动mysql数据库
[root@client100 mysql]# /etc/init.d/mysqld start
# 登录测试[默认第一次登录,没有密码]
[root@client100 mysql]# mysql
#/* 下面是mysql的一些简答操做 */
#/* 安装mysql后,设置root用户密码
[root@client100 mysql]# mysqladmin -uroot password 'kongzhong'
# 设置完密码后,在直接用mysql登录,是登录不了
[root@client100 mysql]# mysql
ERROR 1045 (28000): Access denied foruser 'root'@'localhost' (using password: NO)
# 须要使用此种方式登录
[root@client100 mysql]# mysql -uroot -pkongzhong
# 下面是删除mysql数据库中,密码为空的用户
mysql> use mysql
mysql> select Host,User,Password fromuser;
mysql> delete fromuser where password='';
# 刷新受权表
mysql> flush privileges;
# 可选:运行安全设置脚本,修改MySQL用户root(不是系统的root)的密码,禁止root远程链接(防止破解密码),移除test数据库和匿名用户,强烈建议生产服务器使用:/usr/local/mysql/bin/mysql_secure_installation [在咱们的安装环境中,命令行直接输入mysql_secure_installation 便可]