欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

程序员文章站 2022-05-17 16:06:25
记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb ......

记录centos 7.4 上安装mysql&mariadb&redis&mongodb

前段时间我个人google服务器意外不能用,并且我犯了一件很低级的错误,直接在gcp讲服务器实例给释放掉,导致我的数据全部丢失,现在新搞一个服务器,顺便记录一下centos 7.4 mysql&mariadb&redis&mongodb 的安装

1祝大家:诸事顺利,2019 发大财!

本人将一如既往,更新我的博客,努力为博客园贡献文章!

mysql 安装

随着centos 7 mysql的发布,世界上最流行的开源关系数据库管理系统在centos的仓库中不再可用,mariadb已经成为默认的数据库系统。 mariadb是一个向后兼容的二进制嵌入式mysql替代品

由于mysql在linux的默认存储库中不可用,这里我们采用安装mysql软件包

下载并添加存储库

sudo yum localinstall https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

安装mysql 8.0包(这里我们直接安装mysql 8.0)

与其他使用yum的软件包一样安装mysql,在安装过程中,yum可能会提示您导入mysql gpg密钥。 键入y并按enter键

yum install mysql-community-server

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

启动mysql

安装完成后,启用并启动mysql服务类型:

sudo systemctl enable mysqld

sudo systemctl start mysqld

我们可以通过键入以下命令来检查mysql服务状态

sudo systemctl status mysqld

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

mysql安全

当第一次启动mysql服务器时,为mysql根用户生成一个临时密码。 您可以通过运行以下命令找到密码:

sudo grep 'temporary password' /var/log/mysqld.log

输出应该看起来像这样:

2018-05-26t23:50:09.270656z 5 [note] [my-010454] [server] a temporary password is generated for root@localhost: hgpw+/phb2ql

记下密码 hgpw+/phb2ql,因为下一个命令会要求您输入临时的root密码。

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

运行mysql_secure_installation命令来提高mysql安装的安全性:

sudo mysql_secure_installation

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

客户端连接

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

  1. 进入mysql

mysql -u 'name' -p 'xx'

  1. 选取mysql库,查看user表

select host, user, authentication_string, plugin from user;

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

这里host 是不允许远程连接的

  1. 授权 root 用户的所有权限并设置远程访问

在mysql8.0创建用户和授权和之前不太一样了,其实严格上来讲,也不能说是不一样,只能说是更严格,mysql8.0需要先创建用户和设置密码,然后才能授权
mysql 安装完成后只支持 localhost 访问,我们必须设置一下才可以远程访问

3.1 先创建一个用户

create user 'guo_test'@'%' identified by '123123';

3.2 再进行授权

grant all privileges on . to 'guo_test'@'%' with grant option;

3.3 强调一点,如果还是用原来5.7的那种方式,会报错误

grant all privileges on . to 'root'@'%' identified by '123123';

3.4 授权 root 用户的所有权限并设置远程访问

grant all on . to 'root'@'%';

grant all on 表示所有权限,% 表示通配所有 host,可以访问远程。

3.5 刷新权限

flush privileges;

3.6 补充

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

如果这里我们远程依然连接不上,请修改用户授权规则

alter user 'guo_test'@'%' identified with mysql_native_password by 'password';

我们一般情况下,禁止root用户远程连接,所以我这里采取test账户授权远程连接

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

mysql 安装完成

ok这里我们就成功安装上mysql,可以尝试用mysql client remote 链接一下。

mariadb 安装

redis 安装

redis 安装既可以采用yum install 方式安装,也可以采用源码方式安装,yum方式安装时,为了提高安装速度,可以切换redis镜像源。

这里我们采用源码方式安装

yum方式安装参考这里-centos 7下使用yum安装redis

yum方式安装参考这里-centos 7下使用yum安装redis

安装redis需要知道自己需要哪个版本,有针对性的安装,比如如果需要redis geo这个地理集合的特性,那么redis版本就不能低于3.2版本,由于这个特性是3.2版本才有的。另外需要注意的是,redis约定次版本号(即第一个小数点后的数字)为偶数的版本是稳定版(如2.8版、3.0版),奇数版本是非稳定版(如2.7版、2.9版),生产环境下一般需要使用稳定版本

下载redis 安装包

mkdir -p /home/redis
cd /home/redis
wget http://download.redis.io/releases/redis-4.0.2.tar.gz

编译

redis是通过源码安装的,所以我们需要先安装gcc编译器,同时安装redis所依赖的tcl包

yum install gcc tcl

解压安装包并安装

tar xzf redis-4.0.2.tar.gz/ tar -xzvf redis-4.0.2.tar.gz
cd redis-4.0.2
make
make install

redis没有其他外部依赖,安装过程很简单。编译后在redis源代码目录的src文件夹中可以找到若干个可执行程序,安装完后,在/usr/local/bin目录中可以找到刚刚安装的redis可执行文件

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

启动和停止redis

启动redis

  1. 直接启动

直接运行redis-server即可启动redis

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

  1. 通过初始化脚本启动redis

在redis源代码目录的utils文件夹中有一个名为redis_init_script的初始化脚本文件。需要配置redis的运行方式和持久化文件、日志文件的存储位置。步骤如下:

2.1 配置初始化脚本

首先将初始化脚本复制到/etc/init.d 目录中,文件名为 redis_端口号,其中端口号表示要让redis监听的端口号,客户端通过该端口连接redis。然后修改脚本第6行的redisport变量的值为同样的端口号。

2.2 建立以下需要的文件夹

|目录名|value|

|/etc/redis|存放redis的配置文件|

|/var/redis/端口号|存放redis的持久化文件|

以上是需要创建的两个文件以及文件说明,如果没有创建则创建

2.3 修改配置文件

首先将配置文件模板(redis-4.0.2/redis.conf)复制到/etc/redis 目录中,以端口号命名(如“6379.conf”),然后按照下表对其中的部分参数进行编辑。

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

现在也可以使用下面的命令来启动和关闭redis了

/etc/init.d/redis_6379 start
/etc/init.d/redis_6379 stop

让redis随系统自动启动,这还需要对redis初始化脚本进行简单修改,执行命令:

vim /etc/init.d/redis_6379

在打开的redis初始化脚本文件头部第四行的位置,追加下面两句

# chkconfig: 2345 90 10 
# description: redis is a persistent key-value database    

//设置开机执行redis脚本

chkconfig redis_6379 on

通过设置开机启动的操作后,以后也可以直接用下面的命令对redis进行启动和关闭了,如下

service redis_6379 start

service redis_6379 stop

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

经过上面的部署操作后,系统重启,redis也会随着系统自动启动,并且上面的步骤里也配置了redis持久化,下次启动系统或redis时,有缓存数据不丢失的好处。

停止redis

考虑到 redis 有可能正在将内存中的数据同步到硬盘中,强行终止 redis 进程可能会导致数据丢失。正确停止redis的方式应该是向redis发送shutdown命令,方法为:

redis-cli shutdown

当redis收到shutdown命令后,会先断开所有客户端连接,然后根据配置执行持久化,最后完成退出。
redis可以妥善处理 sigterm信号,所以使用 kill redis 进程的 pid也可以正常结束redis,效果与发送shutdown命令一样。

测试客户端连接

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

测试远程连接

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

这里需要将redis里的配置文件端口绑定注释掉

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

如果设置后,依然无法连接,请检查防火墙

设置redis 密码

临时密码

查看当前密码

config get requirepass

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

此图说明没有设置密码

设置密码

config set requirepass password

永久设置

编辑redis配置文件

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

取消这里注释,设置你的密码,重启redis

记录CentOS 7.4 上安装MySQL&MariaDB&Redis&Mongodb

附录:redis常用配置注释:

# 关闭保护模式
protected-mode no
# ip地址
bind 192.168.1.230
# 端口
port 6379
# 守护进程开启,默认服务从后台启动
daemonize yes
# pid文件
pidfile /redis/pid/redis-6379.pid
# 日志级别
loglevel verbose
# 日志文件位置
logfile /redis/log/redis-6379.log
## redis持久化rdb,aof
# redis持久化文件路径,默认为当前路径
dir /redis/data
# redis持久化文件名称
dbfilename dump-6379.rdb
# 开启aof
appendonly yes
# aof文件名称
appendfilename "appendonly-6379.aof"
# 子进程在做rewrite时,主进程不调用fsync(由内核默认调度)
no-appendfsync-on-rewrite yes
## replication
# 当slave与master断开连接,slave继续提供服务
slave-serve-stale-data yes
slave-read-only yes
# slave ping master的时间间隔,单位为秒
repl-ping-slave-period 1
# 复制超时,单位为秒,须大于repl-ping-slave-period的值
repl-timeout 10
## redis cluster
# 关闭集群配置
# cluster-enabled yes
# 节点配置文件,这个文件是服务启动时自己配置创建的
cluster-config-file nodes-6379.conf
# 集群中各节点相互通讯时,允许"失联"的最大毫秒数,如果超过没向其它节点汇报成功,就认为该节点已挂
cluster-node-timeout 5000
# 将该项设置为0,不管slave节点和master节点间失联多久都会一直尝试failover
cluster-slave-validity-factor 0
# slave ping master的时间间隔,单位为秒
repl-ping-slave-period 1

mongodb 安装