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
下一篇 2017-08-30

相关推荐

  • 不作死就不会死,运维的危险命令(2)

    命令是一种很有趣且有用的东西,但在你不知道会带来什么后果的时候,它又会显得非常危险。所以,在输入某些命令前,请多多检查再敲回车。

    2017-12-03
  • rsyslog+mysql+loganalyzer 搭建日志服务器及监控

    rsyslog 日志:历史事件; 历史事件:时间、地点、事件; syslog: klogd:kernel yslogd:system(application) 事件记录格式:日期时间 主机 进程[pid]:事件内容; C/S架构;通tcp或udp协议的服务完成日志记录的传送; rsyslog: rsyslog的特性: – 多线程; –…

    Linux干货 2017-01-10
  • date(时间),timedatectl(时区),cal(日历)的用法

    date+%F 显示日期,   显示格式如 2017-07-15+%T 显示时间    显示格式如 15:00:15+%Y 显示年      显示格式如 2017+%m 月 +%d 日+%H 时+%M 分+%S 秒+%s 从linux初始到现在经历了多少秒+%w 显示数字形式的星期+%a …

    Linux干货 2017-07-14
  • 重定向

    Linux下定义了三种I/O设备: 标准输入(STDIN):用0表示,默认的标准输入设备是键盘; 标准输出(STDOUT):用1表示,默认的标准输出设备是当前终端; 标准错误(STDERR):用2表示,默认的标准错误输出设备是当前终端; I/O重定向即改变默认的位置 1 标准输出重定向 (1)将标准输出重定向到其他终端 /dev/pts/1代表伪终端1,在伪…

    Linux干货 2017-07-31
  • MongoDB-index

    索引:特殊的数据结构,存储表的数据的一小部分以实现快速查询 优点:     1、大大减少了服务器需要扫描的数据量     2、索引可以帮助服务器避免排序或使用临时表     3、索引可以将随机io转换为顺序io 索引评估:三星(非常好) 一…

    Linux干货 2016-11-27
  • 在vsftp中实现基于pam_mysql的虚拟用户机制

    FTP简介 在介绍vsftp相关内容前,简单描述下FTP。FTP全称File Transfer Protocol,文件传输协议。它是一个C/S架构的协议,在Linux中其服务端实现主要有vsftpd,pureftpd,proftpd,Filezilla,本文主要介绍的是vsftp。客户端实现主要是ftp和lftp两种工具。其工作方式:主要分为两个层面的连接:…

    Linux干货 2017-01-07