频道栏目
首页 > 资讯 > DB2 > 正文

在centos 7.3交互式界面,用二进制方法安装mariadb10.2.8

17-10-21        来源:[db:作者]  
收藏   我要投稿

mariadb简单介绍

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
来自 https://baike.baidu.com/item/mariaDB/6466119?fr=aladdin 详情请自行百度

实验:在centos 7.3交互式界面,用二进制方法安装mariadb10.2.8

1 查看本机是否安装过mariadb,如果已经安装过,先停止此服务
rpm -qa mariadb*

2 准备用户
getent passwd mysql 查看mysql用户是否已经创建
useradd -d /app/mysqldb -r -m -s /sbin/nologin mysql 如果未创建,按此命令创建

3 准备数据目录
以/app/mysqldb为例,建议使用逻辑卷
chown mysql:mysql /app/mysqldb

4 准备二进制程序
tar xvf mariadb-10.2.8-linux-x86_64.tar.gz -C /usr/local/ 必须解压到/usr/local/目录
cd /usr/local/
ln -s mariadb-10.2.8-linux-x86_64/ mysql 创建软链接

5 准备配置文件
cd /usr/local/mysql/
mkdir /etc/mysql/
cp support-files/my-huge.cnf /etc/mysql/my.cnf
vim /etc/mysql/my.cnf

[mysqld]
datadir = /app/mysqldb  这一行必须添加
innodb_file_per_table = on 数据库引擎,每个表单独一个文件,不是必须要添加的,只是为了方便管理
skip_name_resolve = on  忽略名字解析,加快访问速度,这一行不是必须要添加的

6 创建数据库文件
cd /usr/local/mysql/
scripts/mysql_install_db –user=mysql –datadir=/app/mysqldb 不要进入scripts目录运行脚本,会报错,必须在/usr/local/mysql目录下运行

7 创建日志目录,并使mysql用户为日志目录的属主,拥有对其的写权限
mkdir /var/log/mariadb/
chown mysql /var/log/mariadb/

8 将/usr/local/mysql/bin添加进环境路径
vi /etc/profile.d/mysql.sh
PATH=/usr/local/mysql/bin:$PATH
. /etc/profile.d/mysql.sh

9 准备服务启动脚本并启动服务
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig –add mysqld
chkconfig –list mysqld
service mysqld start 启动服务

10 安全初始化
mysql_secure_installation

11 登录数据库,测试是否安装成功
mysql -uroot -p

实验:在centos 6.9交互式界面,用二进制方法安装mariadb 5.5.57

[ -d /app ] || mkdir /app
useradd -d /app/mysqldb -r -m -s /sbin/nologin mysql
tar xf /root/mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/
ln -s /usr/local/mariadb-5.5.57-linux-x86_64 /usr/local/mysql
cd /usr/local/mysql/
mkdir /etc/mysql/
cp support-files/my-huge.cnf /etc/mysql/my.cnf
vim /etc/mysql/my.cnf
[mysqld]
datadir = /app/mysqldb
innodb_file_per_table = on
skip_name_resolve = on

scripts/mysql_install_db –user=mysql –datadir=/app/mysqldb &> /dev/null
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig –add mysqld
touch /var/log/mysqld.log
chown mysql /var/log/mysqld.log
echo ‘PATH=/usr/local/mysql/bin:$PATH’ > /etc/profile.d/mysql.sh
service mysqld start

实验:用脚本实现自动判断OS版本,并安装mariadb

要求:centOS6版本安装mariadb 5.5.57,centOS版本安装mariadb10.2.8

#!/bin/bash
# -------------------------------------------------
# Filename:mysqld-binary-install.sh 
# Revision:1.0
# Date: 2017-10-20
# Author:Ruoshuiss
# Website:http://blog.csdn.net/ruoshuiss/
# Description: Binary installation of the mariadb script
# -------------------------------------------------
ver=`sed -r 's/.* ([0-9]+)\..*/\1/' /etc/centos-release` #判断OS版本
[ -d /app ] || mkdir /app 
getent passwd mysql &> /dev/null|| { userdel -r mysql &> /dev/null;useradd -d /app/mysqldb -r -m -s /sbin/nologin mysql; }
if [ $ver -eq 6 ];then   #如果是centOS6版本,执行下面的操作
        tar xf /root/mariadb-5.5.57-linux-x86_64.tar.gz -C /usr/local/
        ln -s /usr/local/mariadb-5.5.57-linux-x86_64 /usr/local/mysql
        touch /var/log/mysqld.log
        chown mysql  /var/log/mysqld.log
elif [ $ver -eq 7 ];then #如果是centOS7版本,执行下面的操作
        tar xf /root/mariadb-10.2.8-linux-x86_64.tar.gz  -C /usr/local/
        ln -s /usr/local/mariadb-10.2.8-linux-x86_64/ /usr/local/mysql
        mkdir /var/log/mariadb/
        chown mysql /var/log/mariadb/
else   #既不是centOS6也不是centOS7版本就退出脚本
        echo "this OS over range!"
        exit
fi
cd /usr/local/mysql/
mkdir /etc/mysql/
cp support-files/my-huge.cnf  /etc/mysql/my.cnf
sed -i 's#^\[mysqld\]#&\ndatadir = /app/mysqldb\ninnodb_file_per_table = on\nskip_name_resolve = on#g' /etc/mysql/my.cnf  #利用sed修改配置文件
scripts/mysql_install_db  --user=mysql --datadir=/app/mysqldb &> /dev/null
cp  support-files/mysql.server  /etc/init.d/mysqld
chkconfig --add mysqld
echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
service mysqld start 
相关TAG标签
上一篇:SQL语言之DQL、DML、DDL、DCL的概念与区别
下一篇:如何将oracle11g彻底的卸载干净?
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站