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

相关推荐

  • TCP网络关闭的状态变换时序图

    TCP共有11个网路状态,其中涉及到关闭的状态有5个。 在我们编写网络相关程序的时候,这5个状态经常出现。因为这5个状态相互关联,相互纠缠,而且状态变化触发都是由应用触发,但是又涉及操作系统和网络,所以正确的理解TCP 在关闭时网络状态变化情况,为我们诊断网络中各种问题,快速定位故障有着非常重要的作用和意义。 下是是根据W.Richard Stevens的《…

    Linux干货 2015-04-03
  • 网络工具

    测试网络 显示主机名     hostname     centos6 /etc/sysconfig/network     更改主机名        &nbs…

    Linux干货 2016-09-09
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限;          [root@yangjifeng~]# cp -a /etc/skel /home/tuser1 [root@yangjife…

    Linux干货 2017-08-28
  • linux 软件包管理

    1、Linux软件包管理 Redhat, SUSE: RPM Redhat Package Manager PRM is Package Manager 前端工具:yum, apt-get 后端工具:RPM, dpt   2、rpm: 数据库:/var/lib/rpm  rpm包: 软件包作者下载源程序,编译配置完成后,制作成rpm包 格…

    Linux干货 2017-08-06
  • RAID简述和Linux软RAID配置

    RAID简述和Linux软RAID配置 PS:仅为课程练习,原理和配置可能有误,仅供参考,谢谢; 1.RAID功能简述     RAID,全称(Redundant Arrays of Inexpensive Disk或Redundant Arrays of Independent Disk),现在一般多用于后面那个称呼,独立磁盘冗余阵列。RAID的基础概念大…

    Linux干货 2016-07-17