前期准备:
操作系统:Centos 7.4
1:环境准备:关闭SElinux安全策略,关闭防火墙,确认当前主机未安装Mysql或MariaDB
[root@centos7 ~]# setenforce 0 临时关闭
[root@centos7 ~]# vim /etc/selinux/config 改配置文件关闭
SELINUX=disabled
[root@centos7 ~]# systemctl stop firewalld 临时关闭
[root@centos7 ~]# systemctl disabled firewalld
2:Mariadb安装方式:
(1)源代码:编译安装
(2)二进制格式的程序包:展开至特定路径,并经过简单配置后即可使用
(3)程序包管理器管理的程序包
CentOS安装光盘
项目官方: https://downloads.mariadb.org/mariadb/repositories/ 二进制安装包下载
3:MariaDB 10.2.16官方下载页面:https://downloads.mariadb.org/mariadb/10.2.16/
mariadb-10.2.16.tar 源代码安装包
mariadb-10.2.16-linux-x86_64.tar 二进制格式安装包
实验一:使用yum源安装MariaDB 10.2.16
1:打开官网:https://downloads.mariadb.org/mariadb/repositories/,复制yum源,下载界面:https: //downloads.mariadb.org/mariadb/10.2.16/,选择相对于的系统版本
2:将数据库配置复制入库文件,并进行安装
[base]
name=base
baseurl=file:///media/
gpgcheck=0
[epel]
name=epel
baseurl=https://mirrors.tuna.tsinghua.edu.cn/epel/7/x86_64/
gpgcheck=0
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
[mariadb] 清华yum源
name=MariaDB
baseurl=http://mirrors.tuna.tsinghua.edu.cn/mariadb/yum/10.2/centos7-amd64
gpgcheck=0
[root@centos7 /etc/yum.repos.d]# yum clean all
[root@centos7 /etc/yum.repos.d]# yum repolist
[root@centos7 /etc/yum.repos.d]# yum install MariaDB-server 进行安装
[root@centos7 /etc/yum.repos.d]# systemctl start mysql 启动该服务
3:提高安全性,添加安全加固
mysql_secure_installation 运行次脚本,交互式
是否设置root口令 y
是否删除匿名用户 y
是否允许root远程登录 n
是否删除test数据库 y
privilege tables(加载特权表) y
4:[root@centos7 ~]# mysql -uroot p跟密码 用户名,密码进行登录,管理数据库
实验二:二进制格式安装MariaDB 10.2.16
1:官网下载网址:
mariadb-10.2.15-linux-86_64.tar.gz
2:创建逻辑卷规划数据库
[root@centos7 ~]# fdisk /dev/sda
[root@centos7 ~]# pvcreate /dev/sda3 逻辑分区
[root@centos7 ~]# vgcreate vg0 /dev/sda3 创建卷组 卷组名vg0
[root@centos7 ~]# lvcreate -n mysql -l +100%FREE vg0 创建逻辑卷专存放数据库,把全有的空间全用光
[root@centos7 ~]# mkfs.xfs /dev/vg0/mysql 创建文件系统
[root@centos7 ~]# blkid
[root@centos7 ~]# mkdir /data
[root@centos7 ~]# mount /dev/vg0/mysql /data 挂载
root@centos7 ~]# vim /etc/fstab 写入/etc/fstab 文件中,永久挂载
UUID=efb65b09-40c0-477e-b88f-c5c7d4b837e7 /data xfs defaults 0 0
3:创建组和用户
[root@centos7 /]# getent passwd mysql 确保当前主机没有mysql用户
[root@centos7 /]# groupadd -r -g 7 mysql
[root@centos7 /]# useradd -r -u 17 -g 17 -m mysql -d /data/mysql -s /sbin/nologin
[root@centos7 /]# ll /data/mysql/ -d
[root@centos7 /]# getent passwd mysql
mysql:x:17:17::/data/mysql:/sbin/nologin 存放数据的位置
3:解压缩包并修改权限
[root@centos7 ~]# tar xvf mariadb-10.2.16-linux-x86_64.tar.gz -C /usr/local
[root@centos7 ~]# cd /usr/local/
[root@centos7 /usr/local]# ln -s mariadb-10.2.16-linux-x86_64/ mysql 创建一个软连接,让其指向mysql
[root@centos7 /usr/local/mysql]# chown -R root.mysql /usr/local/mysql/ 修改用户和组
4、设置环境变量,为了方便用,把二进制程序的路径放到PATH变量中
[root@centos7 /usr/local/mysql]# vim /etc/profile.d/mysql.sh
PATH=/uar/local/mysql/bin:$PATH
[root@centos7 /usr/local/mysql]# . /etc/profile.d/mysql.sh #生效
[root@centos7 /usr/local/mysql]# echo $PATH
/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
5、创建数据库
[root@centos7 /usr/local/mysql/scripts]# ls
mysql_install_db 初始化脚本
[root@centos7 /usr/local]# cd /usr/local/mysql/ #必须要进入此目录来执行初始化脚本
[root@centos7 /usr/local/mysql]# scripts/mysql_install_db --datadir=/data/mysql/ --
user=mysql
[root@centos7 /usr/local/mysql]# ls /data/mysql/ -l #查看创建的数据库的内容
6、提供配置文件:
[root@centos7 /usr/local/mysql]# cp support-files/my-huge.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y 替换之前的配置文件
修改配置文件vim /etc/my.cnf
[mysqld]
datadir = /data/mysqldb ##添加此行,指定数据库存放路径
7、提供启动服务脚本
[root@centos7 /usr/local/mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@centos7 /usr/local/mysql]# chkconfig --add mysqld
8、启动并测试
[root@centos7 ~]# service mysqld start
[root@centos7 /usr/local/mysql]# ss -nutl
[root@centos7 /usr/local/mysql]# mysqld
9:提高安全性,添加安全加固
mysql_secure_installation 运行次脚本,交互式
是否设置root口令 y
是否删除匿名用户 y
是否允许root远程登录 n
是否删除test数据库 y
privilege tables(加载特权表) y 通过mysql.这个数据库中查user用户
实验三:源码编译mysql
1:官网下载源码包
mariadb-10.2.16.tar.gz
2:准备基础环境,安装包
[root@centos7 /etc/yum.repos.d]# yum -y install bison bison-devel zlib-devel libcurl-devel
libarchive-devel boost-devel gcc gcc-c++ cmake libevent-devel gnutls-devel libaio-devel
openssl-devel ncurses-devel libxml2-devel
3:做准备用户和数据目录
[root@centos7 ~]# useradd -r -d /data/mysql/ -s /sbin/nologin mysql
[root@centos7 ~]# chown mysql.mysql /data/mysql
[root@centos7 ~]# ll -d /data/mysql/
drwxr-xr-x. 2 mysql mysql 6 Jul 25 04:59 /data/mysql/
4:cmake 编译安装: 之后的步骤根二进制安装的步骤相同
[root@centos7 ~]# tar vxf mariadb-10.2.16.tar.gz
[root@centos7 ~]# cd mariadb-10.2.16/
[root@centos7 mariadb-10.2.15]# cmake . \ #编译
-DCMAKE_INSTALL_PREFIX=/app/mysql \ #变量
-DMYSQL_DATADIR=/data/mysqldb/ \
-DSYSCONFDIR=/etc \
-DMYSQL_USER=mysql \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITHOUT_MROONGA_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_ZLIB=system \
-DWITH_LIBWRAP=0 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_UNIX_ADDR=/app/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
[root@centos7 mariadb-10.2.15]#make -j4
&& make install
提示:如果出错,执行rm -f CMakeCache.txt
5、配置环境变量、修改软件安装目录权限
[root@centos7 /usr/local/mysql]# vim /etc/profile.d/mysql.sh
PATH=/uar/local/mysql/bin:$PATH
[root@centos7 /usr/local/mysql]# . /etc/profile.d/mysql.sh #生效
[root@centos7 /usr/local/mysql]# echo $PATH
/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@centos7 ~]# setfacl -R -m u:mysql:rwx /usr/local/mysql/
6:初始化数据库,提供配置文件,启动服务脚本
[root@centos7 /usr/local/mysql/scripts]# ls mysql_install_db 初始化脚本 [root@centos7 /usr/local]# cd /usr/local/mysql/ #必须要进入此目录来执行初始化脚本 [root@centos7 /usr/local/mysql]# scripts/mysql_install_db --datadir=/data/mysql/ -- user=mysql [root@centos7 /usr/local/mysql]# ls /data/mysql/ -l #查看创建的数据库的内容
[root@centos7 /usr/local/mysql]# cp support-files/my-huge.cnf /etc/my.cnf cp: overwrite ‘/etc/my.cnf’? y 替换之前的配置文件 修改配置文件vim /etc/my.cnf [mysqld] datadir = /data/mysqldb ##添加此行,指定数据库存放路径
[root@centos7 /usr/local/mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@centos7 /usr/local/mysql]# chkconfig --add mysqld
7:启动测试
[root@centos7 ~]# service mysqld start
[root@centos7 /usr/local/mysql]# ss -nutl
[root@centos7 /usr/local/mysql]# mysqld