您的位置:首页 > 运维架构 > Linux

CentOS操作系统基于Cmake编译安装MySQL

2015-08-08 18:53 686 查看
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的语法对比如下

安装选项的对比如下:

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/mysqldatadir = /usr/local/mysql/datalog-error = /usr/local/mysql/data/mysql_error.logpid-file = /usr/local/mysql/data/mysql.pidsocket =/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 stopShutting 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技术更新好快,如果要做好一个运维专家,学的东西太多了,就例如我们上面的例子,仅是一个升级版本,对运维技术人员来说,又要花上几个小时研究一下。

本文出自 “Linux~DBA~MBA~EIE” 博客,请务必保留此出处http://sky9896.blog.51cto.com/2330653/1682948
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: