CentOS6.4下编译安装MariaDB数据库的方法

作者:简简单单 2014-02-28

例子1

目前官方最新稳定版是 MariaDB-5.5.35 下载地址:https://downloads.mariadb.org/mariadb/5.5.35/

在编译之前,首先得安装编译工具和其他一些依赖包:

 代码如下 复制代码

yum groupinstall -y “Developmen Tools”

yum install -y cmake openssl-devel zlib-devel

cd /webapp

wget https://downloads.mariadb.org/mariadb/5.5.35/

groupadd mysql
useradd -g mysql mysql -s /sbin/nologin
mkdir /webapp/mysql
mkdir /usr/local/mysql
chown mysql:mysql /webapp/mysql
chown mysql:mysql /usr/local/mysql
tar -zxvf  mariadb-5.5.35.tar.gz
cd /webapp/mariadb-5.5.25
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/webapp/mysql -DSYSCONFDIR=/etc -DWITH_SSL=system -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_ZLIB=system -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DENABLED_LOCAL_INFILE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_USER=mysql

配置完成后:

installed mariadb
make && make install

其实和编译安装类似,就是选项变为大写的而已。例如:(-DCMAKE_INSTALL_PREFIX=/usr/local/mysql)对应mysql的(–prefix=/usr/local/mysql),其他基本无异。

配置完成后,就执行make进行编译。编译需要好一段时间。然后进行安装 make install 。

初始化还有一些简单配置:

 代码如下 复制代码

cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf
cp -p /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod +x /etc/rc.d/init.d/mysqld
chkconfig –level mysqld 2345 on
chkconfig –add mysqld
echo “datadir = /data/mysql” >> /etc/my.cnf
echo “basedir = /usr/local/mysql” >> /etc/rc.d/init.d/mysqld
echo “datadir = /data/mysql” >> /etc/rc.d/init.d/mysqld
./scripts/mysql_install_db –user=mysql –datadir=/webapp/mysql &
service mysqld start

进入数据库

into mysql

到此,MariaDB可以正常使用了。


例子2

MariaDB 5.2.10版本,其


2.解压源码包
    tar -zxf mariadb-5.1.2.10.tar.gz

3.进入 mariadb-5.2.10(cd mariadb-5.2.10)
编译过程中需要用到一些支持类库只需要yum安装即可
yum install gcc gcc-c++ make #(或者还有其他自己百度搞定,我在编译的过程中只遇到需要这些);
4.配置 

 代码如下 复制代码
./configure --prefix=/usr/local/mysql/ --with-extra-charsets=all

5.

 代码如下 复制代码
make  & make install

6.

 代码如下 复制代码

groupadd mysql
   useradd -g mysql mysql
   cp support-files/my-medium.cnf /etc/my.cnf
   chown -R root /usr/local/mysql
   chown -R mysql /usr/local/mysql/var
   chgrp -R mysql /usr/local/mysql
   /usr/local/mysql/bin/mysqld_safe  --user=mysql &
   cp support-files/mysql.server /etc/rc.d/init.d/mysqld

   chown root.root /etc/rc.d/init.d/mysqld
    chmod 755 /etc/rc.d/init.d/mysqld
    chkconfig --add mysqld
    chkconfig --list mysqld
    chkconfig --levels 245 mysqld off

    ln /usr/local/mysql/bin/mysql /usr/bin/mysql

7.修改/sbin/service文件 www.111Cn.net
  

 代码如下 复制代码

  #!/bin/sh

. /etc/init.d/functions
VERSION="$(basename $0) ver. 0.91"
USAGE="Usage: $(basename $0) < option > | --status-all |
[ service_name [ command | --full-restart ] ]"
SERVICE=
SERVICEDIR="/etc/init.d"
OPTIONS=
if [ $# -eq 0 ]; then
   echo "${USAGE}" >&2
   exit 1
fi
cd /
while [ $# -gt 0 ]; do
  case "${1}" in
    --help | -h | --h* )
       echo "${USAGE}" >&2
       exit 0
       ;;
    --version | -V )
       echo "${VERSION}" >&2
       exit 0
       ;;
    *)
       if [ -z "${SERVICE}" -a $# -eq 1 -a "${1}" = "--status-all" ]; then
          cd ${SERVICEDIR}
          for SERVICE in * ; do
            case "${SERVICE}" in
              functions | halt | killall | single| linuxconf| kudzu)
                  ;;
              *)
                if ! is_ignored_file "${SERVICE}"
   && [ -x "${SERVICEDIR}/${SERVICE}" ]; then
                  env -i PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" status
                fi
                ;;
            esac
          done
          exit 0
       elif [ $# -eq 2 -a "${2}" = "--full-restart" ]; then
          SERVICE="${1}"
          if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
            env -i PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" stop
            env -i PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" start
            exit $?
          fi
       elif [ -z "${SERVICE}" ]; then
         SERVICE="${1}"
       else
         OPTIONS="${OPTIONS} ${1}"
       fi
       shift
       ;;
   esac
done
if [ -f "${SERVICEDIR}/${SERVICE}" ]; then
   env -i PATH="$PATH" TERM="$TERM" "${SERVICEDIR}/${SERVICE}" ${OPTIONS}
else
   echo $"${SERVICE}: unrecognized service" >&2
   exit 1
fi

编译过程中可能会发生错误,需要安装  gcc gcc-c++ make

相关文章

精彩推荐