学习目标和内容
1、能够描述项目流程
2、能够了解PV、QPS、DAU等参数
3、能够实现服务器基本环境配置
4、能够部署配置MySQL生产环境
公司老板和产品经理(产品汪)根据市场调查,决定开发的一整套 互联网产品
互动社交+电商+用户论坛(BBS)
产品决策(老板+产品+UI设计)=》代码开发(程序开发人员[前端开发[客户端页面或者APP]和后端开发[java php python node ruby])=》测试工作(测试人员)=》部署上线(运维人员)(SA、dev 开发ops 运维)
项目周期 技术人员在项目周期 加班 1-3月
最终的架构图示
实现负载均衡、高可用、数据库主从复制、读写分离、缓存中间件·······
年份:2008-2010
发布产品类型:互联⽹动态站点 社区论坛 商城 社交类站点
⽤户数量: 100-500
PV : 1000-3000(24⼩时访问次数总和 8小时) 页面访问数量 点击量
QPS: 5-10(每秒访问查询次数) 并发量
DAU: 10-50(每⽇活跃⽤户数) 日活数
QPS 两种方法:
①计算 pv/时间 = qps
②压测 ab sysbeach等测试软件 在规定时间发送一定的请求数量
为了学习的方便和需要,需要先进行基本环境的搭建
可以参考文档《虚拟机和镜像.doc》
这里安装系统镜像,采用minimal的方式,自定义选择开发工具。安装更加快速,系统也更加轻便。
可以参考文档《虚拟机和镜像.doc》
以上操作完成基本服务器镜像系统的安装
虚拟机网卡一般常用两种方式:
桥接方式:直接连接物理交换机获取IP
NAT方式:转发宿主机网络方式,可以实现和宿主机(装虚拟机的系统[windows])上网的功能
IP获取方式:
静态获取:static 需要进行手动配置 指定之后不会改变 要配置,先ping是否被占用
动态获取:dhcp 需要启动一个dhcp服务 自动根据分配一个没有被使用的IP
如果说维护的机器数量比较多,单独配置静态IP是很繁琐的
Vmware NAT连接方式,延长续约时间
解决分配IP的问题
IP租约和续约
以上操作,可以选做,但是要求是,虚拟机可以远程连接。
在获取到一台主机之后,第一步要想到配置FQDN
作用:软件进行交互需要使用FQDN
server01 server01.devops.com
配置方式:
①添加修改/etc/hosts
②网卡配置/etc/sysconfig/network
通过重启是配置生效
centos6.x系列中
①关闭iptables
②关闭selinux
selinux 美国安全子系统,一般运维环境中直接关闭了
如果不关闭,在编译一些软件时,发现运行不起来
查看selinux配置
yum源使用的方式:
①本地yum源 createrepo自定义 光盘源
②网络源 官方网络源 第三方网络源(国内源会更加快速一些,aliyun、sohu、清华、科大、163······)
配置aliyun云
①打开aliyun源的官网,找到centos,点击帮助,可以直接帮助下载已经配置好的仓库文件(先把原来的Base源备份掉)
②生成yum list缓存
shell > yum makecache
以上第三方官方源配置完毕
加入epel源
Enterprise Linux额外软件包(英文: Extra Packages for Enterprise Linux,EPEL)
epel是官网比较新的版本和软件的库
安装epel源
shell > yum -y install epel-release
epel可以安装一些base源中不存在的软件。解决一些依赖软件的问题,否则一些软件可能还需要使用源码编译的方式安装。
①yum 安装vim
shell > yum -y install vim
②配置默认显示行号
grep的高亮的显示
使用source使配置文件生效
问:为什么要校对服务器时间?
答:
①因为计划任务要执行,提供准确的时间
②服务器间进行通信时,需要统一的一致时间
因为业务的需要
实现方式:
①手动校对
②网络服务校时
ntpd服务
shell > yum -y install ntp
启动服务ntpd
shell > service ntpd start
开机自动启动
也可以使用一些第三方提供的校对ntp时间服务
https://opsx.alibaba.com/service?lang=zh-cn&activeKey=2
命令:
rz 上传 直接拖拽文件到命令中
sz 下载 sz 文件名称路径
通过安装lrzsz实现
shell > yum -y install lrzsz
不足:
①只能操作文件,不能操作文件夹
②速度可能不是太快
其他的文件传输,可以使用ssh(sftp、scp)、ftp
LAMP 注意apache要先于php安装 libphp5.so
LNMP 谁先谁后都没有关系
先安装MySQL都没有问题
实际业务环境中,依赖文件(小文件)使用yum,NMP需要使用源码编译的方式。
MySQL作为一款开源产品,具有很大的用户市场,大部分的web解决方案都会使用MySQL作为存储
所以把MySQL的相关安装配置内容学习好,是作为一个运维工程师必不可少的
官网地址:https://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html
数据库排名网址:
https://db-engines.com/en/ranking
mysql发展过程 mysqlAB(10亿美元) => sun(java)=>oracle
mariadb mysql之父认为oracle有闭源mysql的风险,所有开发了mariadb。
官方下载地址:
https://dev.mysql.com/downloads/mysql/5.6.html#downloads
可以通过wget直接下载包,或者上传一个到服务器
创建软件包存储目录 并上传软件
①创建mysql用户,mysql启动使用这个用户
shell > groupadd mysql
shell > useradd -s /sbin/nologin -g mysql -M mysql
shell > tail -1 /etc/passwd
gcc gcc-c++等等软件,进行编译c、c++语言开发的软件
三步走:./configure配置 make 编译 make install 安装
MySQL从5.5开始,源代码安装将原来的configure改为cmake,因此在安装MySQL5.5.x以上版本时,需要先安装cmake,通过yum安装
②安装cmake
yum -y install cmake
③解压并进行编译
shell > tar zxvf mysql-5.6.33.tar.gz
shell > cd mysql-5.6.33
编译配置
shell > cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_SSL=bundled
上面参数的说明
-DCMAKE_INSTALL_PREFIX | 安装到的软件目录 |
---|---|
-DMYSQL_DATADIR | 数据文件存储的路径 |
-DSYSCONFDIR | 配置文件路径 (my.cnf) |
-DENABLED_LOCAL_INFILE=1 | 使用localmysql客户端的配置 |
-DWITH_PARTITION_STORAGE_ENGINE | 使mysql支持分表 |
-DEXTRA_CHARSETS | 安装支持的字符集 |
-DDEFAULT_CHARSET | 默认字符集使用 这里配置为utf-8 |
-DDEFAULT_COLLATION | 连接字符集 |
-DWITH_SSL | 开启mysql的ssl使用 |
在执行使用cmake编译过程中,出现如下错误
注意解决依赖
shell > yum -y install ncurses-devel
shell > rm -f CMakeCache.txt
重新cmake以上的参数
需要安装此依赖文件,并删除编译缓存文件,重新cmake
编译并安装
shell > make
shell > make install
查看安装目录
①授权
shell > chown -R mysql:mysql /usr/local/mysql
②复制配置文件
shell > cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
③初始化数据库
这是很重要的一步,如果不初始化,数据就不能够使用
生成数据库的基本数据文件
shell > /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
--basedir | 安装到的软件目录 |
---|---|
--datadir | 数据文件存储路径 |
--user | mysql使用的用户 |
④添加启动服务
shell > cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
shell > service mysqld start
shell > chkconfig --add mysqld(添加服务管理)
⑤添加环境变量(mysql命令可直接使用)
shell > echo 'PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
shell > source /etc/profile
⑥处理匿名登录和无密码问题
mysql > select Host,User,Password from mysql.user;
删除匿名用户
mysql > delete from mysql.user where User=’’;
修改用户密码
使用密码登录mysql
真实业务环境中密码包含大小写、数字、特殊复杂符号、长度一般12-16位之间
安装mysql的方式 配置官方yum,通过官网的yum源安装多个版本
5.5 5.6 5.7 8.0
①安装mysql的官方yum源
https://dev.mysql.com/downloads/repo/yum/
rpm 安装上面链接的软件rpm包
shell > rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el6-1.noarch.rpm
②配置mysql的yum源,确定安装版本
③yum安装并启动mysql
shell >yum install mysql-community-server