Mysql cmake 编译安装、

基于cmake的mysql安装

1.1 前言

从mysql5.5起,mysql源码安装的编译工具configure开始向cmake过渡。安装方式和之前的略有不同。在这里简单介绍总结下。
安装之前,检查下GNU make, GCC, Perl, libncurses5-dev,cmake-2.8.4是否都已经安装,如果没有安装,用yum install 安装补全

1.2 安装Cmake

进入源代码目录

tar zxvf cmake-2.8.4.tar.gz

安装

cd cmake-2.8.4
./bootstrap
gmake
gmake install

1.3 cmake简介

CMake 是"cross platform make"的缩写。它是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。和之前configure的语法对比如下重新编译时,需要清除旧的对象文件和缓存信息
对于configure 需要执行如下命令
make clean
对于cmake,则需要执行如下命令
rm -f CMakeCache.txt

安装选项的对比如下:

CMAKE_INSTALL_PREFIX值是安装的基本目录,其他cmake选项值是不包括前缀,是相对路径名,绝对路径包括CMAKE_INSTALL_PREFIX路径。

configure编译插件选项

--with-plugins=csv,myisam,myisammrg,heap,innobase, archive,blackhole

在cmake中没有直接对应的相同选项。对于csv,myisam,myisammrg,heap在cmake中是不需要明确指定存储引擎的名称,因为它们是强制性安装。

可以使用以下选择来安装innodb,archive,blackhole存储引擎

-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
(1可以使用on代替)

1.4 安装bison-2.5

进入源代码目录

解压缩

tar zxvf bison-2.5.tar.gz

安装

cd bison-2.5
./configure
make
make install

1.5 Mysql安装

创建mysql用户和组

/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql
mkdir /usr/local/mysql
mkdir /usr/local/mysql/data

解压缩进入安装目录

tar xvf mysql-5.5.27.tar.gz
cd mysql-5.5.27

编译

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

安装

Make&&make install

1.6 安装后

1.6.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.6.2 设置PATH环境变量

Vi  /etc/profile

在profile最后加上

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

保存后

source  /etc/profile

1.6.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.6.4 设置权限

cd /usr/local/mysql
chown –R mysql .
chgrp –R mysql .

1.6.5 mysql 初始化安装

cd /usr/local/mysql/
scripts/mysql_install_db \
--defaults-file=/etc/my.cnf \
--basedir=/usr/local/mysql \
--user=mysql \
如果产生错误like:‘WARNING: The host ‘*‘ could not be looked up with resolveip’
执行时加上 –force 选项

1.6.6 修改权限

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

cd /usr/local/mysql
chown -R root .
chown -R mysql data

1.7 配置服务

配置服务

cd  /usr/local/mysql/support-files
cp mysql.server  /etc/init.d/mysqld
chmod +x  /etc/init.d/mysqld
chkconfig  --add mysqld
chkconfig  --level 345 mysqld on

1.8 启动与停止 mysql

systemctl start mysqld
systemctl stop mysqld

1.9 设置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 set password=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重新加载权限,这样刚才修改的就马上生效了。

4) 添加用

1.10 my.cnf 配置文件修改

在my.cnf文件client下增加user, password。
修改socket路径,为真实路径。

原创文章,作者:N27_Danry,如若转载,请注明出处:http://www.178linux.com/85636

(2)
上一篇 2017-08-29 17:27
下一篇 2017-08-30 15:25

相关推荐

  • 如何配置本地yum源

    在日常学习中配置本地yum源至关重要,下面简单介绍下centos7如何配置本地yum源: 1、开机启动前检查是否将光盘镜像加载,然后开机; 2、cd /run/media/root/CentOS 7 x86_64下找到Packages和repodata这两个包非常重要,其中Packages是rpm包目录,repodata是元数据 3、cd /etc…

    Linux干货 2017-04-23
  • 马哥教育网络第21期-第十周课程练习

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情) 1.post加电自检,bios检测基础硬件设备 2.boot sequence:按次序查找各引导设备,第一个有引导程序的设备即为本次启动用到设备;读取启动设备MBR中 的bootloader,启动GRUB,选择内核加载到内存中。 3.kernel:自身初始化:探测可识别到的…

    Linux干货 2016-11-14
  • 冥界之王-第8周作业

       1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。     网桥:网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,        &nbs…

    Linux干货 2016-10-23
  • blog test

    just test

    Linux干货 2017-02-28
  • 高级文件系统管理2

    逻辑卷管理器(LVM),允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小。允许在多个物理设备间重新组织文件系统。其步骤大体如下:将设备指定为物理卷,用一个或者多个物理卷来创建一个卷组,物理卷你是用固定大小的物理区域(PE)来定义的,在物理卷上创建的逻辑卷是由物理区域组成,可以在逻辑卷上创建文件系统。 一、知识整理 1、LVM设备名:dm-#。 软链接…

    Linux干货 2016-09-13
  • Linux文本处理工具之grep

    简介     grep:Global search regular expression and print out the line.     grep是一种文本搜索处理工具,根据用户指定的文本模式或搜索条件对目标文件进行逐行搜索,并显示能匹配到的行。   …

    Linux干货 2015-05-12