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_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\ --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技术更新好快,如果要做好一个运维专家,学的东西太多了,就例如我们上面的例子,仅是一个升级版本,对运维技术人员来说,又要花上几个小时研究一下。 |