MariaDB 篇Centos7离线安装MariaDB
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
-
微信小程序没声音怎么办
PHP中文网 06-15 -
excel图片置于文字下方的方法
PHP中文网 06-27 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
微信人名旁边有个图标有什么用
PHP中文网 03-11 -
微信提示登录环境异常是什么意思原因
PHP中文网 04-09 -
微信获取用户openid失败怎么办
PHP中文网 03-26 -
photoshop怎么把印章抠出并放在另一张图上
PHP中文网 06-15 -
EhViewer(E绅士)最新版_ehviewer白色版彩色版_Ehviewer显示网络错误怎么办?e站进不去了怎么办
Evanpatchouli 09-19 -
Excel筛选和排序是灰色的怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24