1.1 实验环境

操作系统:CentOS6.7

虚拟机:VMware Workstation

数据库系统:mysql-5.6.15.tar.gz

1.2  实验背景

从MySQL5.5版本开始,MySQL源码安装的编译工具由configure开始向cmake过渡,安装方式和MySQL5.5之前的版本略有不同。在这里简单小结下。

     源码编译安装最容易出错,也是最耗时间。sky建议初学者学会一种方式之后,尝试应用多种方式安装。

     安装之前,最好检查一些基础软件,例如 make, GCC, Perl,libncurses5-dev,cmake-2.8.5, ncurses-devel是否都已经安装,如果没有安装,用yum  -y install gcc gcc-c++  make cmake bison ncurses-devel安装补全,否则在编译和安装时报错。

1.3  安装Cmake

#进入源代码目录

[root@localhost src]# cd /usr/local/src

#下载安装文件

[root@localhost src]# wgethttp://wwwNaNake.org/files/v2.8/cmake-2.8.5.tar.gz

#解压缩

[root@localhost src]# tar zxvfcmake-2.8.5.tar.gz

#安装

[root@localhost src]# cd cmake-2.8.5

[root@localhost src]#./bootstrap

[root@localhost src]# gmake

[root@localhost src]# gmake install

#退回源代码目录

cd ../

1.4 cmake简介

CMake 是"cross platform make"的缩写。它是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。

和之前configure的语法对比如下

                             wKioL1XF4U7zpsk4AABxyhFIBSk224.jpg

安装选项的对比如下:

CentOS操作系统基于Cmake编译安装MySQL_第1张图片

1.5  安装bison-2.5

#下载安装文件

[root@localhost src]# wgethttp://ftp.gnu.org/gnu/bison/bison-2.5.tar.gz

#解压缩

[root@localhost src]# tar zxvfbison-2.5.tar.gz

#安装

[root@localhost src]# cd bison-2.5

[root@localhost src]#./configure

[root@localhost src]# make

[root@localhost src]# make install

#退回源代码目录

cd ../

1.6 Mysql安装

#创建mysql用户和组

[root@localhost src]# /usr/sbin/groupaddmysql

[root@localhost src]# /usr/sbin/useradd-g mysql mysql

[root@localhost src]# mkdir/usr/local/mysql       #建立数据库目录

[root@localhost src]# mkdir/usr/local/mysql/data   #建立数据库文件夹

#取源代码放到目录下/usr/local

#解压缩进入安装目录

[root@localhost src]# tar  xvf mysql-5.5.27.tar.gz

[root@localhost src]# cd  mysql-5.5.27

#编译

[root@localhost mysql]# cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\
-DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \

-DMYSQL_USER=mysql

#安装

[root@localhost mysql]## make&&makeinstall

1.7  安装后

1.7.1 链接文件

ln -s /usr/local/mysql/lib/libmysqlclient.so.18/usr/lib64/

#不执行这一步,运行时可能会出现如下错误

error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory

1.7.2   设置PATH环境变量

Vi  /etc/profile

#在profile最后加上

export PATH=”/usr/local/mysql/bin:$PATH”

#保存后

source  /etc/profile

1.7.3   配置参数文件

cd support-files

cp my-large.cnf /etc/my.cnf

#编辑my.cnf,加入以下内容或是在原有路径上修改如下:

basedir         = /usr/local/mysql

datadir         = /usr/local/mysql/data

log-error       = /usr/local/mysql/data/mysql_error.log

pid-file        = /usr/local/mysql/data/mysql.pid

socket         =/usr/local/mysql/data/mysql.socket //如果已经有,则修改目录为mysql的数据目录,此处是/usr/local/mysql/data

 1.7.4 设置权限

[root@localhost mysql]#  cd /usr/local/mysql

[root@localhost mysql]#  chown –R mysql  .  #注意mysql后空格后加点,修改权限。

[root@localhost mysql]# chgrp –R mysql  .  #注意mysql后空格后加点,修改权限。

1.7.5  mysql 初始化安装

cd /usr/local/mysql/

[root@localhost mysql]# scripts/mysql_install_db\
--defaults-file=/etc/my.cnf \
--basedir=/usr/local/mysql \
--user=mysql \

--force

如果产生错误like:‘WARNING: The host '***' could not be looked up with resolveip’

执行时加上 –force 选项

1.7.6  修改权限

#将安装目录所有权改为root,数据目录的所有权改为你运行mysqld的用户

cd /usr/local/mysql

[root@localhost mysql]# chown -R root .   #注意root后空格加点。

[root@localhost mysql]# chown -R mysqldata

1.8  配置服务

#配置服务

cd /usr/local/mysql/support-files

[root@localhost support-files]# cpmysql.server  /etc/init.d/mysqld

[root@localhost support-files]# chmod+x  /etc/init.d/mysqld

[root@localhost support-files]# chkconfig --add mysqld   #开机自动启动

[root@localhost support-files]# chkconfig --level 345 mysqld on

1.9  启动与停止 mysql

[root@localhost ~]# service mysqldstart

Starting MySQL SUCCESS!

[root@localhost ~]# service mysqld stop

Shutting down MySQL... SUCCESS!

1.10  设置Mysql用户账号密码

mysql安装后默认生成两个帐号:一个是root,未设置密码,可以从本机登录到mysql;另一个是匿名帐号,无帐号名、无密码,可以从本机登录,未提供用户名的连接都将假定为此帐号。这样的设置存在着安全隐患,按下面的步骤进行更改。

 1) 修改root的密码

执行命令:/usr/local/mysql/bin/mysqladmin–u root –p旧密码 password 新密码或者用root登录数据库

# mysql –u root

登录以后执行

Mysql>set password for ‘root’@’hostname’=password(‘新密码’);

或者执行

Mysql>update mysql.user setpassword=password(‘新密码’) 

—>where user = ‘root’ and host =’hostname’;

如果不知道hostname,可先执行select host,user from mysql.user where user=’root’

2)删除匿名用户

Root 登录后执行

mysql> delete from mysql.user where user=’’ ; 删除用户名为空的记录

mysql> delete from mysql.user where password=’’ ; 删除密码为空的记录

3) 修改完用户权限以后,执行

Mysql> flush privileges;

    因为MySQL启动后,所有用户权限都是加载到内存中的;但有些权限更新操作不会刷新到内存中,这样只有下次启动时才生效,如果直接update mysql.user来修改密码等;flush privileges 强制让MySQL重新加载权限,这样刚才修改的就马上生效了。

    小结:IT技术更新好快,如果要做好一个运维专家,学的东西太多了,就例如我们上面的例子,仅是一个升级版本,对运维技术人员来说,又要花上几个小时研究一下。