欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-09 23:07:44
mariadb简单介绍 mariadb管理是mysql的一个分支,主要由开源社区在维护,采用gpl授权许可 mariadb的目的是完全兼容mysql,包括api和命令行,使之能轻松成为mysql的代...

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:https://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