常用服务安装部署

 

学了前面的Linux基础,想必童鞋们是不是更感兴趣了?接下来就学习常用服务部署吧!

安装环境:

centos7 + vmware + xshell

即将登场的是:

  • mysql(mariadb)
  • redis
  • python
  • nginx
  • saltstack

MYSQL(mariadb)

  1. MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。
    开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
    MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

方法1:yum安装mariadb

  1. yum install mariadb-server mariadb

相关命令

  1. mariadb数据库的相关命令是:
  2.  
  3. systemctl start mariadb #启动MariaDB
  4.  
  5. systemctl stop mariadb #停止MariaDB
  6.  
  7. systemctl restart mariadb #重启MariaDB
  8.  
  9. systemctl enable mariadb #设置开机启动

启动后正常使用mysql

  1. systemctl start mariadb
  2.  
  3. #进入mysql
  4. mysql -uroot -p

方法2:官网下载mysql-server包(rpm)

  1. # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
  2. # rpm -ivh mysql-community-release-el7-.noarch.rpm
  3. # yum install mysql-community-server

配置mysql

1.中文编码设置

  1. 编辑mysql配置文件/etc/my.cnf
  2. [mysqld]
  3. character-set-server=utf8
  4. datadir=/var/lib/mysql
  5. socket=/var/lib/mysql/mysql.sock
  6. collation-server=utf8_general_ci
  7.  
  8. security risks
  9. symbolic-links=
  10. log-error=/var/log/mysqld.log
  11. pid-file=/var/run/mysqld/mysqld.pid
  12.  
  13. [client]
  14. default-character-set=utf8
  15. [mysql]
  16. default-character-set=utf8

2.授权配置

  1. 远程连接设置哦设置所有库,所有表的所有权限,赋值权限给所有ip地址的root用户
    mysql > grant all privileges on *.* to root@'%' identified by 'password';
    #创建用户
    mysql > create user 'username'@'%' identified by 'password';
    #刷新权限
    flush privileges;

MYSQL主从复制

主从机制实现原理

  1. () master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
  2. () slavemasterbinary log events拷贝到它的中继日志(relay log);
  3. () slave重做中继日志中的事件,将改变反映它自己的数据。

master主库配置

  1. #查看数据库状态
  2. systemctl status mariadb
  3. #停mariadb
  4. systemctl stop mariadb
  5.  
  6. #修改配置文件
    vim /etc/my.cnf
    #修改内容
    #解释:server-id服务的唯一标识(主从之间都必须不同);log-bin启动二进制日志名称为mysql-bin

  [mysqld]
  server-id=1
  log-bin=mysql-bin

  1. #重启mariadb
    systemctl start mariadb

master主库添加从库账号

  1. .新建用于主从同步的用户chaoge,允许登录的从库是'192.168.178.130'
  2. create user 'chaoge'@'192.168.178.130' identified by 'redhat';
  3.  
  4. .#题外话:如果提示密码太简单不复合策略加在前面加这句
  5. mysql> set global validate_password_policy=;
  6.  
  7. .给从库账号授权,说明给chaoge从库复制的权限,在192.168.178.130机器上复制
    grant replication slave on *.* to 'chaoge'@'192.168.178.130';
  8.  
  9. 4.检查主库的状态

MariaDB [(none)]> show master status
-> ;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 575 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

File是二进制日志文件名,Position 是日志开始的位置。后面从库会用到 后面从库会用到 后面从库会用到!!!!!!

slave从库配置

  1. .检查slave数据库状态
  2. systemctl status mariadb
  3.  
  4. .停止mariadb
  5. systemctl stop mariadb
  6.  
  7. 3.修改配置文件my.cnf
    [mysqld]
    server-id=2 #一定要和主库区别开
  8.  
  9. 4.重启mariadb
    systemctl start mariadb
  10.  
  11. 5.登录mariadb
    mysql -uroot -p
  12.  
  13. 6.使用主库授权的账号

mysql > change master to master_host='192.168.178.129',
master_user='chaoge',
master_password='redhat',
master_log_file='mysql-bin.000001',
master_log_pos=575;

 7.重启数据库

systemctl restart mariadb

redis

  1. Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件

yum安装redis

1.yum安装

  1. #前提得配置好阿里云yum源,epel源
  2. #查看是否有redis包
  3. yum list redis
    #安装redis
    yum install redis -y
    #安装好,启动redis
    systemctl start redis

2.检测redis是否工作

  1. redis-cli #redis 客户端工具
  2. #进入交互式环境后,执行ping,返回pong表示安装成功
  3. 127.0.0.1:> ping
  4. PONG

源码安装redis,编译安装

大家用过yum,是相当省事好用吧,为什么还要学习源码安装?

有人说编译安装性能好?错

编译安装的优势是:

  • 编译安装时可以指定扩展的module(模块),php、apache、nginx都是一样有很多第三方扩展模块,如mysql,编译安装时候,如果需要就定制存储引擎(innodb,还是MyIASM)
  • 编译安装可以统一安装路径,linux软件约定安装目录在/opt/下面
  • 软件仓库版本一般比较低,编译源码安装可以根据需求,安装最新的版本
  1. .下载redis源码
  2. wget http://download.redis.io/releases/redis-4.0.10.tar.gz
    2.解压缩
    tar -zxf redis-4.0.10.tar.gz
    3.切换redis源码目录
    cd redis-4.0.10.tar.gz
    4.编译源文件
    make
    5.编译好后,src/目录下有编译好的redis指令
    6.make install 安装到指定目录,默认在/usr/local/bin

redis可执行文件

  1. ./redis-benchmark //用于进行redis性能测试的工具
  2. ./redis-check-dump //用于修复出问题的dump.rdb文件
  3. ./redis-cli //redis的客户端
  4. ./redis-server //redis的服务端
  5. ./redis-check-aof //用于修复出问题的AOF文件
  6. ./redis-sentinel //用于集群管理

启动redis服务端

  1. 启动redis非常简单,直接./redis-server就可以启动服务端了,还可以用下面的方法指定要加载的配置文件:
  2. ./redis-server ../redis.conf
    默认情况下,redis-server会以非daemon的方式来运行,且默认服务端口为6379

使用redis客户端

  1. #执行客户端命令即可进入
  2. ./redis-cli
  3. #测试是否连接上redis
  4. 127.0.0.1: > ping
  5. 返回pong代表连接上了
  6.  
  7. //用set来设置key、value
  8. 127.0.0.1: > set name "chaoge"
  9. OK
  10. //get获取name的值
  11. 127.0.0.1: > get name
  12. "chaoge"

redis数据结构

  1. redis是一种高级的keyvalue存储系统,其中value支持五种数据类型
  2. 字符串(strings
  3. 散列(hashes
  4. 列表(lists
  5. 集合(sets
  6. 有序集合(sorted sets

数据结构示例

  1. 1.strings类型
  1. set name "chaoge66" //设置name
  2. get name //读取name
  3.  
  4. strings类型支持数值操作
  5. set age "" //设置key age
  6. get age //读取age
  7. incr age //数值+1,遇见数值操作时,redis会将字符串类型转成数值
  8. get age //此时age是18,value仍然是字符串
    type age    //查看键的类型
  1. 2.list类型
  1. redis的另外一个数据结构叫做lists,中文叫列表
  2. lists常用操作包括
  3. LPUSH lists左侧插入一个新元素
  4. RPUSH lists右侧插入一个新元素
  5. LRANGE lists指定范围提取元素
    LPOP 左侧删除
    RPOP  右侧删除
  6.  
  7. 示例:

lpush mylist "1" //新建一个mylist,在头部插入元素"1"
(integer) 1    //返回mylist元素个数

rpush mylist "2"  //在mylist右侧插入元素"2"

(INTEGER) 2    //返回mylist元素个数

127.0.0.1:6379> lpush mylist "0"  //在mylist左侧插入元素"0"

(integer) 3    //返回mylist元素个数

//列出mylist中从编号0到编号1的元素

127.0.0.1:6379> lrange mylist 0 -1 
1) "0"
2) "1"
3) "2"

lists类型常用在,消息队列、实现分页功能、存储文章评论

3.sets集合类型

redis的集合,是一种无序的集合,集合中的元素没有先后顺序。

集合相关的操作也很丰富,如添加新元素、删除已有元素、取交集、取并集、取差集等。我们来看例子:

  1. //向集合myset中加入一个新元素"one"
  2. 127.0.0.1:> sadd myset "one"
  3. (integer)
  4. 127.0.0.1:> sadd myset "two"
  5. (integer)
  6. //列出集合myset中的所有元素
  7. 127.0.0.1:> smembers myset
  8. ) "one"
  9. ) "two"
  10. //判断元素1是否在集合myset中,返回1表示存在
  11. 127.0.0.1:> sismember myset "one"
  12. (integer)
  13. //判断元素3是否在集合myset中,返回0表示不存在
  14. 127.0.0.1:> sismember myset "three"
  15. (integer)
  16. //新建一个新的集合yourset
  17. 127.0.0.1:> sadd yourset ""
  18. (integer)
  19. 127.0.0.1:> sadd yourset ""
  20. (integer)
  21. 127.0.0.1:> smembers yourset
  22. ) ""
  23. ) ""
  24. //对两个集合求并集
  25. 127.0.0.1:> sunion myset yourset
  26. ) ""
  27. ) "one"
  28. ) ""
  29. ) "two"
  30.  
  31. 集合的使用比如QQ社交功能中的“好友标签”,朋友给你的好友标签“sb”,“dsb”等等,就可以吧每一个用户的标签存储在集合里

4.sorted sets有序集合

redis不但提供了无需集合(sets),还很体贴的提供了有序集合(sorted sets)。有序集合中的每个元素都关联一个序号(score),这便是排序的依据。

很多时候,我们都将redis中的有序集合叫做zsets,这是因为在redis中,有序集合相关的操作指令都是以z开头的,比如zrange、zadd、zrevrange、zrangebyscore等等

  1. 127.0.0.1:> zadd myzset baidu.com
  2. (integer)
  3. //向myzset中新增一个元素360.com,赋予它的序号是3
  4. 127.0.0.1:> zadd myzset .com
  5. (integer)
  6. //向myzset中新增一个元素google.com,赋予它的序号是2
  7. 127.0.0.1:> zadd myzset google.com
  8. (integer)
  9. //列出myzset的所有元素,同时列出其序号,可以看出myzset已经是有序的了。
  10. 127.0.0.1:> zrange myzset - with scores
  11. ) "baidu.com"
  12. ) ""
  13. ) "google.com"
  14. ) ""
  15. ) "360.com"
  16. ) ""
  17. //只列出myzset的元素
  18. 127.0.0.1:> zrange myzset -
  19. ) "baidu.com"
  20. ) "google.com"
  21. ) "360.com"

5.哈希数据结构

hashes即哈希。哈希是从redis-2.0.0版本之后才有的数据结构。

hashes存的是字符串和字符串值之间的映射,比如一个用户要存储其全名、姓氏、年龄等等,就很适合使用哈希。

  1. //建立哈希,并赋值
  2. 127.0.0.1:> HMSET user: username antirez password P1pp0 age
  3. OK
  4. //列出哈希的内容
  5. 127.0.0.1:> HGETALL user:
  6. ) "username"
  7. ) "antirez"
  8. ) "password"
  9. ) "P1pp0"
  10. ) "age"
  11. ) ""
  12. //更改哈希中的某一个值
  13. 127.0.0.1:> HSET user: password
  14. (integer)
  15. //再次列出哈希的内容
  16. 127.0.0.1:> HGETALL user:
  17. ) "username"
  18. ) "antirez"
  19. ) "password"
  20. ) ""
  21. ) "age"
  22. ) ""

Python编译安装

先放个龟叔再说

centos7默认是装有python的,咱们先看一下

  1. #检查python版本
  2. [root@oldboy_python ~ ::]#python -V
  3. Python 2.7.

再放一张图,《震惊,python2.7不再维护!》

好了,咱们开始python3之旅。

编译环境准备

  1. 、./configure 是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CCGCC,并不是需要CCGCC,它是个shell脚本。
  2. make 是用来编译的,它从Makefile中读取指令,然后编译。
  3. make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。
    4.解决依赖关系
    yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel -y

这里看超哥另外一篇文章:https://www.cnblogs.com/pyyu/p/7402145.html

  1. .下载python3版本
  2. curl -O https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
    2.解压缩源码
    tar -zxvf Python-3.7.0.tgz
    3.编译三部曲
    ./configure prefix=/opt/python3.7/ #指定编译装到/opt/python3.7/下
    make && make install #编译和安装

NGINX

nginx [engine x]是Igor Sysoev编写的一个HTTP和反向代理服务器,另外它也可以作为邮件代理服务器。 它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括Yandex、Mail.Ru、VKontakte,以及Rambler。据Netcraft统计,在2012年8月份,世界上最繁忙的网站中有11.48%使用Nginx作为其服务器或者代理服务器。

Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。

从2011年12月开始,Tengine成为一个开源项目,Tengine团队在积极地开发和维护着它。Tengine团队的核心成员来自于淘宝、搜狗等互联网企业。Tengine是社区合作的成果,我们欢迎大家参与其中,贡献自己的力量。

安装环境准备

  1. 一. gcc 安装
  2. 安装 nginx 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,则需要安装:
  3.  
  4. yum install gcc-c++
  5. 二. PCRE pcre-devel 安装
  6. PCRE(Perl Compatible Regular Expressions) 是一个Perl库,包括 perl 兼容的正则表达式库。nginx http 模块使用 pcre 来解析正则表达式,所以需要在 linux 上安装 pcre 库,pcre-devel 是使用 pcre 开发的一个二次开发库。nginx也需要此库。命令:
  7.  
  8. yum install -y pcre pcre-devel
  9. 三. zlib 安装
  10. zlib 库提供了很多种压缩和解压缩的方式, nginx 使用 zlib http 包的内容进行 gzip ,所以需要在 Centos 上安装 zlib 库。
  11.  
  12. yum install -y zlib zlib-devel
  13. 四. OpenSSL 安装
  14. OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及 SSL 协议,并提供丰富的应用程序供测试或其它目的使用。
  15. nginx 不仅支持 http 协议,还支持 https(即在ssl协议上传输http),所以需要在 Centos 安装 OpenSSL 库。
  16.  
  17. yum install -y openssl openssl-devel

安装,启动nginx

  1. .下载源码包
  2. wget -c https://nginx.org/download/nginx-1.12.0.tar.gz
    2.解压缩源码
    tar -zxvf nginx-1.12.0.tar.gz
    3.配置,编译安装
    .configure --prefix=/opt/nginx1-12/
    make && make install
    4.启动nginx,进入sbin目录,找到nginx启动命令
    cd sbin
    ./nginx #启动
    ./nginx -s stop #关闭
    ./nginx -s reload #重新加载

uWSGI+NGINX+Django部署应用 

经过上续的nginx,python安装,还得提前安装好virtualenv(超哥博客)

安装uWSGI

  1. 后续都得在虚拟环境下配置,
  2. (venv)pip3 install uwsgi 安装uwsgi
  3. 安装好后,编写一个
    test.py
  4. def application(env,start_response):
  5. start_response('200 OK',[('Content-Type','text/html')])
  6. return [b'Hello world!']

开启uWSGI服务

  1. uwsgi --http : --wsgi-file test.py 

saltstack

对于运维人员来说,反复复杂的工作很烦,效率低,还容易出错。而传统运维也想着自动化运维的方向进行发展,

而saltstack则是在自动化运维上非常好用的工具,saltstack是python开发的一款自动化运维工具,可以批量管理操作主机,

远程执行脚本等功能。完全开源,还可以设置web管理界面,更简单的管理大量服务器。

基本原理:

  1. 基本原理
    SaltStack 采用 C/S模式,server端就是saltmasterclient端就是minionminionmaster之间通过ZeroMQ消息队列通信
  2.  
  3. minion上线后先与master端联系,把自己的pub key发过去,这时master端通过salt-key -L命令就会看到minionkey,接受该minion-key后,也就是masterminion已经互信

安装准备:

  1. .安装epel源(同时在masterminion端)
  2. wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
  3.  
  4. 2.安装salt-master,也就是服务端
    yum install salt-master -y
  5.  
  6. 3.安装salt-minion,也就是客户端
    yum install salt-minion -y

redis常用服务安装部署的更多相关文章

  1. Linux常用服务安装部署

    1,centos7默认是装有python的,检查python版本的命令 # 检查python版本 : python -V 2,centOS在安装python3以及tab补全功能 下载python3源码 ...

  2. Linux下的python3,virtualenv,Mysql、nginx、redis等常用服务安装配置

    Linux下的python3,virtualenv,Mysql.nginx.redis等常用服务安装配置   学了前面的Linux基础,想必童鞋们是不是更感兴趣了?接下来就学习常用服务部署吧! 安装环 ...

  3. Redis Windows下安装部署

    下载Redis 在Redis的官网下载页上有各种各样的版本,我这次是在windows上部署的,要去GitHub上下载.我下载的是2.8.12版的,相信大家百度一下就可以搜到,这就是我们需要的: 启动R ...

  4. Redis介绍、安装部署、操作

    学习连接:http://www.runoob.com/redis/redis-tutorial.html 一.Redis介绍 Redis是NoSql的一种. NoSql,全名:Not Only Sql ...

  5. Redis (一)Redis简介、安装部署

    Redis是一个开源的,先进的 key-value 存储可用于构建高性能,可扩展的 Web 应用程序的解决方案. 既然是key-value,对于Java开发来说更熟悉的是Map集合.那就有问题了,有M ...

  6. Linux 下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)

    一.应用场景介绍 本文主要是介绍Redis集群在Linux环境下的安装讲解,其中主要包括在联网的Linux环境和脱机的Linux环境下是如何安装的.因为大多数时候,公司的生产环境是在内网环境下,无外网 ...

  7. Spring boot centos7 后台服务安装部署

    Spring boot 应用服务安装部署(maven工程) 1.首先在maven工程的pom文件中引入以下标签并保存 <build> <plugins> <plugin& ...

  8. Redis学习01_redis安装部署(centos)

    原文: http://www.cnblogs.com/herblog/p/9305668.html Redis学习(一):CentOS下redis安装和部署 1.基础知识  redis是用C语言开发的 ...

  9. 基于windows的Redis后台服务安装卸载管理

    首先,需要你进入你的Redis解压根目录,例如,类似于我下图的这样子: 接着打开你的cmd,使用cd命令切换到该目录,或者直接在上图的地址栏输入“cmd”并回车.这里为什么让你先使用资源管理器找到你的 ...

随机推荐

  1. asp微信支付代码证书文件post_url.aspx和post_url.aspx.cs源码下载

    很多朋友在网上找的asp支付代码中都没有这两个证书文件,只能是用别人的,但是如果别人把他的网站这个文件删了,你的支付也就不能用了,今天我就把大家需要的这两个asp微信支付代码证书文件post_url. ...

  2. 关于js-xlsx的简单使用

    关于js-xlsx的简单使用 最近要做一个东西用到对excel的操作,就是在前端将excel加载进来,操作后再生成excel,在网上找了很多种办法,能够实现的demo是下面这个: 纯前端利用 js-x ...

  3. flutter 访问网页+http请求

    一.目录 1.访问网页 2.http请求 -----------------------------这是分割线----------------------------- 1.访问网页 基于url_la ...

  4. 初识异步、并发处理纯代码及Demo

    多线程Thread 处理 Thread thread = new Thread(()=> { ; i < ; i++) { Console.WriteLine("这是第" ...

  5. Android 开发 关于APP无法安装到Android模拟器上的问题

    我们在创建一个app后,打算安装到Android模拟器上.可能会出现无法安装,或者提示已经安装无法卸载的问题.这个时候需要添加兼容CPU. 选择 build.gradle 文件打开添加如下代码: an ...

  6. zk hdfs hadoop yarn hive 学习笔记

    如图

  7. 爬虫之scrapy

    一.项目简单流程 1.创建项目 scrapy startproject 项目名 2.创建Spider cd 项目名 scrapy genspider 爬虫名 域名 class YokaSpider(s ...

  8. 解决由于服务器调用删除或添加字段后CXF客户端未更新导致异常问题org.apache.cxf.interceptor.Fault: Unmarshalling Error: Unexpected element

    采用CXF客户端调用Webservice服务,由于服务端时不时会对Webservice服务删除或添加一些字段,而CXF未及时更新客户端代码导致再次调用服务时报异常错误: Interceptor for ...

  9. python-Djando项目搭建

    1.创建一个项目目录“C:\python项目\project2”. 2.打开CMD 进入该项目目录 cd C:\python项目\project2 3.执行 django-admin startpro ...

  10. pytorch安装 caffe2 安装:git 慢 caffe2 cannot find -lopencv_dep_cudart ,undefined reference to 'pthread_create'

    最开始的问题: caffe2目前已经不维护了.怎么编译都报错,并且有third_party的代码链接已经飞了.下载不全代码了.建议 不要再折腾了,直接安装Pytorch. 首先,基本环境是ubuntu ...