• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

MariaDB 篇Centos7离线安装MariaDB

武飞扬头像
优秀小白熊
帮助3

RPM依赖包下载地址

下载地址:mirrors.neusoft.edu.cn/mariadb/yum…比较快,注意自己选择的版本)

yum.mariadb.org/10.2/centos…(比较慢)

mirrors.aliyun.com/centos/7/os…(阿里云源仅仅下载了boost-*这个rpm)

可能每个服务器缺失的依赖包都不同,可以去上面的这些网址中去找。

如果想安装其他版本的MariaDB,可以去开源镜像站上去下载其他版本的MariaDB的rpm依赖包。去替换文件夹中的MariaDB的rpm来进行安装。

我在服务器中缺失的依赖包放在了同级目录下的文件夹中,不想重新下载。可直接传到服务器中。如果执行完依赖包后还有缺失,再去下载缺失的依赖包。

前期准备

1、挂载硬盘

数据库存储路径这里,要按照 服务器本身存储路径,一般情况下服务器的硬盘是已经被挂载上的。但是为了防止硬盘没有挂载,也为了查看各个目录存储空间的大小。可以使用下面这个命令进行查看。

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   30G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   29G  0 part 
  ├─centos-root 253:0    0   27G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk         
sr0              11:0    1  4.2G  0 rom  
[root@localhost ~]# 

注意:最后这个mountpoing的意思是挂载点 ,如果type类型是disk(硬盘)且没有挂载点。就证明这个硬盘还没有被挂载,需要你先去把硬盘给挂载上,在进行数据库存储路径的配置。

[root@localhost ~]# mkdir /backup   # 新建一个文件夹作为挂载点

[root@localhost ~]# cd /            # 移动至根目录下

[root@localhost /]# ls              # 这里已经有这个文件夹了
backup  bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  yumiso

[root@localhost /]# mount /dev/vdc /backup    # 挂载硬盘,下面会报错。是因为没有对硬盘进行格式化。
mount: /dev/sdb is write-protected, mounting read-only  
mount: unknown filesystem type '(null)'       # Mount:未知的文件系统类型'(null)'

[root@localhost /]# mkfs.ext4 /dev/vdc      # 对硬盘进行格式化(格式为ext4)
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y                    # 这里选y
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242880 blocks
262144 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done   


[root@localhost /]# mount /dev/sdb /backup   # 这里在执行一次挂载命令就可以了
[root@localhost /]# blkid /dev/vdc           # 查看挂载硬盘的UUID,复制以下。写到下面的配置文件中,实现永久挂载。
/dev/sdb: UUID="6384d556-f444-48ee-8f1d-5257f0c350aa" TYPE="ext4" 


用于挂载信息的指定填写格式中,各字段所表示的意义

设备文件  一般为设备的路径 设备名称,也可以写唯一识别码(UUID,Universally Unique Identifier)
挂载目录  指定要挂载到的目录,需在挂载前创建好
格式类型  指定文件系统的格式,比如Ext3、Ext4、XFS、SWAP、iso9660(此为光盘设备)等
权限选项  若设置为defaults,则默认权限为:rw, suid, dev, exec, auto, nouser, async
是否备份  若为1则开机后使用dump进行磁盘备份,为0则不备份
是否自检  若为1则开机后自动进行磁盘自检,为0则不自检


如果想将文件系统为Ext4的硬件设备/dev/sdb2在开机后自动挂载到/backup目录上,并保持默认权限
且无须开机自检,就需要在/etc/fstab文件中写入下面的信息,这样在系统重启后也会成功挂载。

[root@localhost ~]# vim /etc/fstab

在最后一行增加如下信息
UUID=b8c4a45f-ed74-3089-fcdb-0273de904d6d      /backup    ext4    defaults    0  0

写入到/etc/fstab文件中的设备信息并不会立即生效,需要使用mount -a参数进行自动挂载:

[root@localhost /]# mount -a

df命令用于查看已挂载的磁盘空间使用情况,英文全称为“disk free”,语法格式为“df -h”。

查看当前系统中设备的挂载情况,列出系统中正在使用的设备有哪些。

[root@localhost /]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   27G  9.5G   18G  36% /
devtmpfs                 899M     0  899M   0% /dev
tmpfs                    911M     0  911M   0% /dev/shm
tmpfs                    911M  9.6M  902M   2% /run
tmpfs                    911M     0  911M   0% /sys/fs/cgroup
/dev/sda1               1014M  142M  873M  14% /boot
tmpfs                    183M     0  183M   0% /run/user/0
/dev/sdb                  20G   45M   19G   1% /backup    # 现在硬盘就已经挂在到了挂载点上了。

挂载错误之后可以使用umount命令,进行卸载,然后重新进行挂载。如果是写入到了配置文件中,也需要对配置文件进行修改。

umount /dev/sdb

下载好的依赖包(版本是10.2.4)

阿里云盘下载链接:www.aliyundrive.com/s/r3aVdhuHY…

1. 下载完依赖包,放到服务器中

这里我是直接放在了root目录下

2.执行安装命令:

yum install ./* 

注意:这里执行完成rpm依赖包后,MariaDB就已经安装完成,并自动加入系统服务,直接对MariaDB进行配置即可。

rpm -Uvh  *.rpm  --nodeps  --force    (这条命令强制安装当前文件夹中所有的rpm包,忽略依赖去安装)

到这里MariaDB就已经安装完成了,下面就是对数据库进行配置了。

3.开启服务:

systemctl status mariadb     # 查询MariaDB的运行状态,一般情况下安装完成后,默认都是关闭状态

systemctl start mariadb      # 开启MariaDB数据库

systemctl stop mariadb       # 停止MariaDB数据库

systemctl stop mariadb       # 把MariaDB加入开机自启

4.进去数据库,进行用户/密码/权限配置

  • 为需要远程的用户赋予权限
# 支持root用户允许远程连接mysql数据库
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'nbsq@hq015!' WITH GRANT OPTION; // %:表示从任何主机连接到mysql服务器

FLUSH   PRIVILEGES;


# 新建用户远程连接mysql数据库(需要修改下面的admin为你想创建的用户名):
grant all on *.* to admin@'%' identified by 'yourpassword' with grant option;

# 刷新权限,给用户赋予权限后,需要刷新一下权限
flush privileges;
  • 设置/修改 登录密码
登入:mysql -uroot -p   # 注意:第一次登录时是没有密码的,直接回车即可


# 设置或者修改密码有以下几种方式

## 第一种

MariaDB [(none)]> use mysql;
MariaDB [mysql]> UPDATE mysql.user SET password = PASSWORD('newpassward') WHERE user = 'root';
MariaDB [mysql]> FLUSH PRIVILEGES;   # 刷新权限

## 第二种 

[root@localhost ~]# mysql -uroot
MariaDB [(none)]> use mysql;
MariaDB [mysql]> SET password=PASSWORD('newpassward');
MariaDB [mysql]> FLUSH PRIVILEGES;

## 第三种

[root@localhost ~]# mysqladmin -u root password 'newpassword'
#如果root已经设置过密码,采用如下方法 
[root@localhost ~]# mysqladmin -u root -p 'oldpassword' password 'newpassword'   

5.放行数据库端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent  # 放行3306端口,并写入文件

firewall-cmd --reload  # 使防火墙规则立即生效

firewall-cmd --list-all  # 查看防火墙配置内容

扩展:

firewall-cmd --zone=public --list-ports  # 查看防火墙放行的所有端口

firewall-cmd --zone=public --query-port=8090/tcp # 查看防火墙放行的指定端口

firewall-cmd --reload # 使防火墙规则生效

firewall-cmd --zone=public --add-port=8090/tcp --permanent # 放行某一端口

firewall-cmd --zone=public --remove-port=8090/tcp --permanent # 关闭某一端口

firewall-cmd --list-all # 查看防火墙配置内容

firewall-cmd --permanent  --add-rich-rule=“rule family=“ipv4” source address=“192.168.110.24” accept”   # 放行指定ip

firewall-cmd --permanent --remove-rich-rule=“rule family=“ipv4” source address=“192.168.110.24” accept” # 删除指定ip的规则

firewall-cmd --permanent --add-rich-rule=“rule family=“ipv4” source address=“192.168.110.21/24” accept”  # 放行指定ip段

firewall-cmd --permanent --add-rich-rule="rule family=“ipv4” source address=“192.168.110.21” port protocol=“tcp” port=“8090”   # 放行指定ip和端口

6.修改Mariadb数据库存储路径

拿到手的服务器大量空间在/home分区下,没有在/下,考虑到后期数据库增长量,/分区空间可能不够,决定把Mariadb数据库数据存储路径修改到/home分区下;以下为修改过程

6.1、关闭数据库服务
systemctl stop mariadb.service
6.2、新建新的存储路径,并移动之前的文件
mkdir /home/data
mv /var/lib/mysql/ /home/data/
6.3、修改配置文件
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf #如果是新装的数据库,可以复制一个模板配置文件过来
注:datadir上面的五行是设置默认字符集为utf8mb4,否则emoji表情是无法正确存储的。
vim /etc/my.cnf

[client]
socket          = /home/data/mysql/mysql.sock
[mysqld]
init_connect='SET collation_connection = utf8mb4_unicode_ci'
init_connect='SET NAMES utf8mb4'
character_set_server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake=true
datadir=/home/data/mysql/
报错
报错:“[Warning] Can’t create test file /home/data/mysql/sthbb_rwdcdb_36_123.lower-test”.
解决方式: 修改/usr/lib/systemd/system/mariadb.service中配置项

ProtectHome=false
验证
[root@sthbb_rwdcdb_36_123 data]# mysql -uroot -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.1.36-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show global variables like "tadir%";
 --------------- ------------------- 
| Variable_name | Value             |
 --------------- ------------------- 
| datadir       | /home/data/mysql/ |
 --------------- ------------------- 
1 row in set (0.00 sec)
MariaDB [(none)]> status
--------------
mysql  Ver 15.1 Distrib 10.1.36-MariaDB, for Linux (x86_64) using readline 5.1
Connection id:      3
Current database:   
Current user:       root@localhost
SSL:            Not in use
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server:         MariaDB
Server version:     10.1.36-MariaDB MariaDB Server
Protocol version:   10
Connection:     Localhost via UNIX socket
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
UNIX socket:        /home/data/mysql/mysql.sock
Uptime:         2 min 29 sec
Threads: 1  Questions: 5  Slow queries: 0  Opens: 17  Flush tables: 1  Open tables: 11  Queries per second avg: 0.033
--------------

netstat -tunlp 查看所有使用的端口

7.开启日志相关配置

查询日志/错误日志/慢查询日志/二进制日志/中继日志/事务日志
●    查询日志(general_log):执行的所有SQL语句
            记录SQL操作的 DDL / DML 日志,记录信息非常简单,但包括完整的SQL语句;
            开启general_log会产生非常庞大的日质量,一般不建议开启;
●    错误日志:数据库发生的错误信息
●    慢查询日志:SQL语句超过指定的查询时间会记录在此(**)  long_query_time=10
●    二进制日志(bin log):用作于复制和备份恢复
             记录所有引起数据变化的操作,用于备份和还原,使用主从复制时也需要开启binlog
             默认存放在datadir目录下,在刷新和重启数据库是会滚动二进制文件,产生新的binlog;
●    中继日志(relay log)
----->以上信息都可以在MySQL的配置文件中进行定义:/etc/my.cnf | /etc/my.cnf.d/*  

日志格式
基于SQL语句的复制(statement-based replication, SBR),基于行的复制(row-based replication, RBR),混合模式复制(mixed-based replication, MBR)
  ○ row : 存储着记录改变后的样子 ---> 修改某张表的字段名会影响表中的所有数据
  ○ statment:存储着执行的SQL语句
  ○ mixed : row   statment两种方式的混合
INNODB存储引擎的日志
事务日志(transaction log):事务型存储引擎自行管理和使用
7.1、修改MariaDB数据库的配置文件,开启日志相关配置参数
log_error = /data/mysql/mariadb.err                                 #错误日志、具体路径要按照服务器而定。

# 二进制日志(binlog)
log-bin=mysql-bin                                                     #这些路径相对于datadir,也可以从根目录下开始。
binlog_format=mixed                                                   #日志格式
server-id   = 1                                                       #给服务器分配一个独一无二的ID编号; n的取值范围是1~2的32次方启用二进制日志功能。在复制数据同步的时候会用到。
expire_logs_days = 10                                                 #启用二进制日志后,保留日志的天数。服务器会自动清理指定天数前的日志文件,如果不设置则会导致服务器空间耗尽。一般设置为7~14天。
修改完毕后,保存退出。进入到数据库中查看相关参数
> show variables like '%log_bin%';

> show variables like '%binlog%';

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfhcfgi
系列文章
更多 icon
同类精品
更多 icon
继续加载