layout: post
title: Mariadb安装的多种安装方法
date: 2018-01-24
tags: [“Mariadb”,”软件服务”]
一、Mariadb和Mysql的区别
Mariadb是关系型数据库,和Mysql基本一样,因为它们的爹是一个人嘛,Mariadb的5.5版本相当于mysql的5.5版本,mysql的5.6之后它们之间的版本变没有课关系,这时Mariadb的版本是10。Mariadb是开源的,Mysql被oracle收购之后,使用需要收费。
二、Mariadb安装的方式
1、rpm安装
这种方式基本不用多说,直接使用yum instlal -y mariadb-server 就行了。
2、二进制安装方法(以mariadb-10.2.12为例)
1)创建用户和组
- useradd -s /sbin/nologin -M mysql #组会默认建立
2)创建数据目录
- mkdir /data/db1
- chown mysql:root /data/db1/ #权限弄错,搞不出来
3)将2进制程序包释放到/usr/local/下,修改权限,并在/usr/local/下建立一个软连接mysql
- tar -xf mariadb-10.2.12-linux-x86_64.tar.gz -C /usr/local/
- cd /usr/local/
- ln -s mariadb-10.2.12-linux-x86_64 mysql
- chown -R root:mysql /usr/local/mysql/
4)创建配置文件
Mariadb的配置文件有几个模板,存放在”/usr/local/mysql/support-files”下,可以根据自己的需求进行选择,我们这里使用”my-innodb-heavy-4G.cnf”这个配置文件。
Mysql默认读取配置文件的顺序是:/etc/my.cnf —>/etc/mysql/my.cnf —> —default-extra-file=/PATH/TO/CONF_FILE —> ~/.my.cnf
- mkdir /etc/mysql
- cp my-innodb-heavy-4G.cnf /etc/mysql/my.cnf
- 修改该配置文件,添加选项
- vim /etc/mysql/my.cnf #在mysqld下添加如下配置
- datadir = /data/db1
- innodb_file_per_table = on
- skip_name_resolve = on #禁止主机名解析,建议使用
5)初始化数据库
- cd /usr/local/mysql/
- scripts/mysql_install_db --datadir=/data/db1 --user=mysql
6)创建日志文件
- touch /var/log/mysqld.log
- chown mysql /var/log/mysqld.log
7)准备服务脚本,并启动服务
- cd /usr/local/mysql/
- cp support-files/mysql.server /etc/init.d/mysqld
- 这个启动脚本需要添加一些配置
- vim /etc/init.d/mysqld
- 修改以下两个变量
- basedir=/usr/local/mysql
- datadir=/data/db1
- 启动mysql
- chkconfig --add mysqld #添加到启动列表
- service mysqld start #启动服务( redhat7 也可以通过systemctl来管理服务)
3、源码安装方式
1)前几步和二进制安装一样,这里简单写下步骤
- useradd -s /sbin/nologin -M mysql
- mkdir /data/db_source
- chown mysql:root /data/db_source /
2)安装mysql源码的依赖包
3)解压并与配置预安装环境
- yum install -y cmake gcc gcc-c++ glibc-devel glibc-headersautoconf automake bzip2-devel zlib-devel libtiff-devel pam-devel openssl-devel libXpm libX11libxml2-devel gettext-devel pcre-devel mod_perl perl mod_perl ncurses ncurses-devel
- cd ~
- tar -xf mariadb-10.2.12.tar.gz
- cd mariadb-10.2.12
- cmake . \
- -DCMAKE_INSTALL_PREFIX=/app/mysql \
- -DMYSQL_DATADIR=/data/db_source \
- -DSYSCONFDIR=/etc/mysql \
- -DMYSQL_USER=mysql \
- -DWITH_INNOBASE_STORAGE_ENGINE=1 \
- -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
- -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
- -DWITH_READLINE=1 \
- -DWITH_SSL=system \
- -DWITH_ZLIB=system \
- -DWITH_LIBWRAP=0 \
- -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
- -DDEFAULT_CHARSET=utf8 \
- -DDEFAULT_COLLATION=utf8_general_ci \
- -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
- -DENABLED_LOCAL_INFILE=1 \
- -DWITH_PARTITION_STORAGE_ENGINE=1 \
- -DWITH_DEBUG=0 \
- -DWITHOUT_MROONGA_STORAGE_ENGINE=1
在编译时有可能会出现这个问题”/usr/bin/c++ doesn’t support -std=c++11 or -std=c++0x, you need one that does.” 。你需要把你的字符编码改成英文支持的,使用zh_CN.UTF-8编码会出这个问题。
4)编译安装
- make && make install
5)修改配置文件即初始化数据库
- vim /etc/mysql/my.cnf
- 添加
- datadir = /app/db_source
- innodb_file_per_table = on
- skip_name_resolve = on
- cd /app/mysql
- scripts/mysql_install_db --datadir=/data/db_source --user=mysql --basedir=/app/mysql
6)创建日志文件
- touch /var/log/mysqld.log
- chown mysqld /var/log/mysqld.log
7)服务脚本和2进制安装方式使用的一样,不再赘述
3、不论以哪种方式安装完成之后,mysql的默认管理用户root的口令都是空的,需要设置新口令,在这里我推荐好使用”mysql/bin/mysql_secure_installation”初始化root口令