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)创建用户和组

  1. useradd -s /sbin/nologin -M mysql #组会默认建立

2)创建数据目录

  1. mkdir /data/db1
  2. chown mysql:root /data/db1/ #权限弄错,搞不出来

3)将2进制程序包释放到/usr/local/下,修改权限,并在/usr/local/下建立一个软连接mysql

  1. tar -xf mariadb-10.2.12-linux-x86_64.tar.gz -C /usr/local/
  2. cd /usr/local/
  3. ln -s mariadb-10.2.12-linux-x86_64 mysql
  4. 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

  1. mkdir /etc/mysql
  2. cp my-innodb-heavy-4G.cnf /etc/mysql/my.cnf
  3.  
  4. 修改该配置文件,添加选项
  5. vim /etc/mysql/my.cnf #在mysqld下添加如下配置
  6.  
  7. datadir = /data/db1
  8. innodb_file_per_table = on
  9. skip_name_resolve = on #禁止主机名解析,建议使用

5)初始化数据库

  1. cd /usr/local/mysql/
  2. scripts/mysql_install_db --datadir=/data/db1 --user=mysql

6)创建日志文件

  1. touch /var/log/mysqld.log
  2. chown mysql /var/log/mysqld.log

7)准备服务脚本,并启动服务

  1. cd /usr/local/mysql/
  2. cp support-files/mysql.server /etc/init.d/mysqld
  3.  
  4. 这个启动脚本需要添加一些配置
  5.  
  6. vim /etc/init.d/mysqld
  7.  
  8. 修改以下两个变量
  9. basedir=/usr/local/mysql
  10. datadir=/data/db1
  11.  
  12. 启动mysql
  13. chkconfig --add mysqld #添加到启动列表
  14. service mysqld start #启动服务( redhat7 也可以通过systemctl来管理服务)

3、源码安装方式

1)前几步和二进制安装一样,这里简单写下步骤

  1. useradd -s /sbin/nologin -M mysql
  2. mkdir /data/db_source
  3. chown mysql:root /data/db_source /

2)安装mysql源码的依赖包

  1. 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
  3)解压并与配置预安装环境
  1. cd ~
  2. tar -xf mariadb-10.2.12.tar.gz
  3. cd mariadb-10.2.12
  4. cmake . \
  5. -DCMAKE_INSTALL_PREFIX=/app/mysql \
  6. -DMYSQL_DATADIR=/data/db_source \
  7. -DSYSCONFDIR=/etc/mysql \
  8. -DMYSQL_USER=mysql \
  9. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  10. -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  11. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  12. -DWITH_READLINE=1 \
  13. -DWITH_SSL=system \
  14. -DWITH_ZLIB=system \
  15. -DWITH_LIBWRAP=0 \
  16. -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
  17. -DDEFAULT_CHARSET=utf8 \
  18. -DDEFAULT_COLLATION=utf8_general_ci \
  19. -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
  20. -DENABLED_LOCAL_INFILE=1 \
  21. -DWITH_PARTITION_STORAGE_ENGINE=1 \
  22. -DWITH_DEBUG=0 \
  23. -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)编译安装

  1. make && make install

5)修改配置文件即初始化数据库

  1. vim /etc/mysql/my.cnf
  2.  
  3. 添加
  4. datadir = /app/db_source
  5. innodb_file_per_table = on
  6. skip_name_resolve = on
  7.  
  8. cd /app/mysql
  9. scripts/mysql_install_db --datadir=/data/db_source --user=mysql --basedir=/app/mysql

6)创建日志文件

  1. touch /var/log/mysqld.log
  2. chown mysqld /var/log/mysqld.log

7)服务脚本和2进制安装方式使用的一样,不再赘述

3、不论以哪种方式安装完成之后,mysql的默认管理用户root的口令都是空的,需要设置新口令,在这里我推荐好使用”mysql/bin/mysql_secure_installation”初始化root口令

 

文档更新时间: 2020-05-25 12:16   作者:张尚