二进制安装MariaDB

本文详细介绍如何在CentOS上通过二进制分发版安装MariaDB数据库。包括创建所需用户组、解压软件包、设置配置文件、安装二进制程序等步骤,并提供了测试启动服务的方法及初始化脚本运行说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.前言

数据库的管理在运维日常中人分量尤为重要,所应我们应首要了解数据库的安装过程,以便日后的练习操作
本文以MariaDB为范例,进行安装,官网地址:
https://mariadb.org
可自行下载二进制分发版软件包
众所周知,源码安装较于yum源的安装最有突出的优势在于自由灵活,可依据不同的环境和需求进行配置以及选择组件,并且可跨越平台的限制。但是,在源码安装给我们带来更大灵活性的同时,同样也给我们带来了可能引入的隐患:
a) 对编译参数的不够了解造成编译参数使用不当可能使编译出来的二进制代码不够稳定;
b) 对自己的应用环境把握失误而使用的优化参数可能反而使系统性能更差;
c) 还有一个并不能称之为隐患的小问题就是源码编译安装将使安装部署过程更为复杂,所花费的时间更长;
所以权衡利弊,对于要求较高的初学者我们可以选择另一种形式,二进制分发版安装。
二进制安装大体来说也是基于源码,只是其已经完成了编译的过程,帮助用户节省了编译的时间和繁杂的程序优化,用户仍然具有一定的自由度,但是由于已经编译完成,文件目录已经实现设定好,需要按照设定的目录设置文件路径。

二.安装

1.创建安装所需组和用户
安装前要先删除之前存在的数据库,以免发生冲突

[root@CentOS6 app]$groupadd -r -g 306  mysql
[root@CentOS6 app]$useradd -r -g 306 -u 306 -m -d /app/data mysql
[root@CentOS6 app]$chown mysql:mysql /app/data

这里建议使用-r指定系统账号,一是为了系统安全,二则是省去了后期权限的设置,-d指定用户的家目录,也就是数据库数据目录,修改目录所属主属组。这里建议将数据库数据目录存放在逻辑卷环境下,这样可以在数据库文件无限增大的情况下扩充磁盘大小。并且逻辑卷支持快照功能,对于数据丢失的找回有着很大的帮助。由于逻辑卷创建属于本文的拓展内容,也是非必要措施,所以放在了文末的补充部分,以免扰乱学习安装思路。


2.解压缩软件包

[root@CentOS6 app]$tar -xf mariadb-5.5.43-linux-x86_64.tar.gz -C /usr/local
[root@CentOS6 app]cd /usr/local

[root@CentOS6 local]$ln -sv mariadb-5.5.43-linux-x86_64 mysql 
`mysql' -> `mariadb-5.5.43-linux-x86_64'
[root@CentOS6 local]$ll
total 44
drwxr-xr-x.  2 root root 4096 Sep 23  2011 bin
...
drwxr-xr-x.  2 root root 4096 Sep 23  2011 src
[root@CentOS6 local]$chown -R root:mysql /usr/local/mysql/
[root@CentOS6 local]$ll mysql/
total 220
drwxr-xr-x.  2 root mysql   4096 Sep 23 16:46 bin
...
drwxr-xr-x.  3 root mysql   4096 Sep 23 16:46 support-files

由于前言已经提到了,其默认路径已经设定,软件会查找/usr/local/mysql目录,所以我们这部分操作有一步ln -s创建了软链接,及修改软件目录所属组,以便mysql用户读取配置和数据


3.设置配置文件
MariaDB的配置文件读取流程如下所示
/etc/my.cnf ==> /etc/mysql/my.cnf ==> –default-extrafile=/PATH/TO/CONF_FILE ==> ~/.my.cnf
后寻的配置文件会覆盖于前序的配置文件,这是值得注意的。
具体的配置还应根据实际的环境进行修改,这步的操作主要还是创建出配置文件,以是脚本正常运作

[root@CentOS6 local]$cp /usr/local/mysql/support-files/my-large.cnf /etc/mysql/my.cnf
datadir = /app/data     <==数据存储目录
innodb_file_per_table = on      <==引擎选择
skip_name_resolve = on   <==禁止域名解析

这里的第二项和第三项设置是非必要的:
第二项:设定数据库运用Innodb引擎
MyIASM是老版本MySQL默认的引擎,InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供事务支持已经外部键等高级数据库功能。
第三项:这设计到mysql的调优问题,主要解决其连接速度,具体的原理问题请参考
http://www.cnblogs.com/ivictor/p/5311607.html


4.安装二进制程序

[root@CentOS6 local]$cd /usr/local/mysql/
[root@CentOS6 mysql]$./scripts/mysql_install_db --datadir=/app/data --user=mysql
[root@CentOS6 mysql]$ls /app/data
aria_log.00000001  mysql             mysql-bin.000002  performance_schema
aria_log_control   mysql-bin.000001  mysql-bin.index   test

–datadir指定数据库数据目录
–user指定用户


5.测试启动服务

[root@CentOS6 mysql]$cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@CentOS6 mysql]$chkconfig --add mysqld
[root@CentOS6 mysql]$service mysqld start
Starting MySQL.. SUCCESS! 
[root@CentOS6 mysql]$ss -ntl
State      Recv-Q Send-Q                Local Address:Port                  Peer Address:Port 
LISTEN     0      128                               *:34692                            *:*     
LISTEN     0      128                              :::59685                           :::*     
LISTEN     0      50                                *:3306                             *:*     
...

拷贝服务脚本到启动目录下,是脚本生效,并尝试启动服务,无报错信息,ss观察端口3306以处于监听状态,成功。


6.设置PATH变量

[root@CentOS6 mysql]$vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH
[root@CentOS6 mysql]$source  /etc/profile.d/mysql.sh
[root@CentOS6 mysql]$echo $PATH
/usr/local/mysql/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@CentOS6 mysql]$mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.43-MariaDB-log MariaDB Server

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

7.运行初始化脚本

[root@CentOS6 mysql]$/usr/local/mysql/bin/mysql_secure_installation NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!
...
Enter current password for root (enter for none): 
OK, successfully used password, moving on...
...
Set root password? [Y/n] y <==是否甚至root密码
New password:  <==设置密码
Re-enter new password:  <==重复确认密码
...
Remove anonymous users? [Y/n] y <==是否删除空密码用户
...
Disallow root login remotely? [Y/n] y <==是否允许root远程登录
...
Remove test database and access to it? [Y/n] n <==是否删除测试数据库
...
Reload privilege tables now? [Y/n] y <==是否生效以上设置
...

三.补充

补充一.创建逻辑卷

[root@CentOS6 ~]$fdisk /dev/sdb
n
p
1
+20G
w
[root@CentOS6 ~]$partx -a /dev/sda
[root@CentOS6 ~]$pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created
[root@CentOS6 ~]$vgcreate myvg /dev/sdb1
Volume group "myvg" successfully created
[root@CentOS6 ~]$lvcreate -l 100%VG -n mydata myvg
Logical volume "mydata" created.
[root@CentOS6 ~]$yum install xfsprogs
[root@CentOS6 ~]$mkfs.xfs /dev/myvg/mydata
[root@CentOS6 ~]$mkdir /mydata
[root@CentOS6 ~]$vim /etc/fstab
/dev/myvg/mydata    /mydata    xfs    defaults 0 0
[root@CentOS6 ~]$mount -a
[root@CentOS6 ~]$df
Filesystem           1K-blocks    Used Available Use% Mounted on
/dev/sda2             51475068 5463380  43390248  12% /
tmpfs                   502056      72    501984   1% /dev/shm
/dev/sda3             51475068  320680  48532948   1% /app
/dev/sda1               999320   34932    911960   4% /boot
/dev/mapper/myvg-mydata
                      20969468   32928  20936540   1% /mydata

[root@CentOS6 ~]$mkdir /mydata/data
[root@CentOS6 ~]chown mysql:mysql data
[root@CentOS6 ~]$chown mysql:mysql /mydata/data
[root@CentOS6 ~]$ll -d /mydata/data
drwxr-xr-x. 2 mysql mysql 6 Sep 23 21:54 /mydata/data
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值