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)
N27_DanryN27_Danry
上一篇 2017-08-29 17:27
下一篇 2017-08-30 15:25

相关推荐

  • 基于samba服务的wordpress站点

    实验要求:             (1) samba server导出/data/app/web,在目录中提供wordpress;     (2) samba  client挂载nfs server导出的文件…

    2017-06-08
  • iptables实战笔记一

    iptables实战 1.开启防火墙 systemctl start firewalld 2.清空所有的默认规则,我们自己定义自己的规则 iptables -F 查看此时的iptables iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination Chain FOR…

    Linux干货 2017-06-13
  • N22-第八章作业

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。       网桥:网桥是工作在数据链路层的设备。用于将两个LAN连接在一起并按照Mac地址转发数据。网桥保存着所有与它相连的主机的Mac地址表和端口号并具有学习功能。当网桥收到某个数据包后,能根据目的主机的Mac地址再选择从哪个端…

    Linux干货 2016-10-24
  • Puppet学习之puppet的安装和配置

    一、Puppet简介 Puppet基于ruby语言开发的自动化系统配置工具,可以C/S模式或独立运行,支持对所有UNIX及类UNIX系统的配置管理,最新版本也开始支持对Windows操作系统有限的一些管理。Puppet适用于服务器管的整个过程 ,比如初始安装、配置更新以及系统下线。 二、Puppet的安装 Puppet的安装方式支持源码安装、yum安装以及r…

    2017-09-25
  • 26期全程班-第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。     # who | cut -d” ” -f 1 | sort -u   2、取出最后登录到当前系统的用户的相关信息。     # id `last …

    Linux干货 2017-02-18
  • Linux系统之用户和组

    Linux系统之用户和组 1、什么是用户 用户:资源获取标识符,资源分配,安全权限模型的核心要素之一 2、没有用户,操作系统可否正常执行? 答案是肯定的 在Linux系统上,用户管理是基于用户名和密码的方式进行资源的分配, Username/UID分为以下类别:     管理员:root, 0  &…

    Linux干货 2016-08-04