IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> lnmp架构之mysql部署 -> 正文阅读

[大数据]lnmp架构之mysql部署

在前面的操作中(之前的文章),我们已经手动配置好了nginx的负载均衡服务器,后端配置有两个RS;在nginx调度服务器上使用php源码编译安装了php,使用nginx发布了php页面,同时为了减轻数据库的负载,给php添加了高性能的分布式内存缓存服务器memcached,使用openresty对php+memcached进行了优化,提高了并发量;结合tomcat和nginx,在后端两个服务器上部署了tomcat集群,将动态静态资源进行分离,同时给tomcat集群配置了memcached缓存服务器,使用交叉式存储实现了后端两个服务器之间的session共享,提升了nginx调度的性能;在lnmp架构中,只剩下来要介绍的mysql数据库的构建。

一、mysql介绍

MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年建立的。

目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,使得很多公司都采用 MySQL 数据库以降低成本。

关系型数据库,存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。
常见关系型数据库有Oracle,SQLServer,DB2,Mysql等。在轻量或者小型的应用中,使用不同的关系型数据库对系统的性能影响不大,但是在构建大型应用时,则需要根据应用的业务需求和性能需求,选择合适的关系型数据库。
对于非关系型数据库即NoSQL数据库,以数据集的方式,把大量的数据集中存储在一起,类似于键值对、图结构或者文档,比较主流的有redis,HBase,MongoDb,memcache等产品,通常都采用开源的方式。

二、源码包编译安装mysql:

下载:https://dev.mysql.com/downloads/mysql/

?解压源码包:

编译mysql用的是cmake(mysql8需要cmake3.5以上):

我们用的是mysql5.7的,所以我们直接安装源生的cmake即可:

?

编译还需要安装gcc,gcc-c++:

?

编译安装mysql还得靠官方文档啊:?MySQL :: MySQL 5.7 Reference Manual :: 2.9.3 MySQL Layout for Source Installation

编译选项参数:MySQL :: MySQL 5.7 Reference Manual :: 2.9.7 MySQL Source-Configuration Options

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DWITH_INNOBASE_STORAGE_ENGINE=1 -DSYSCONFDIR=/etc -DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=/root/mysql-5.7.35/boost/boost_1_59_0
make && make install

#添加mysql用户
useradd -s /sbin/nologin -M -d /data/mysql mysql 
cd /usr/local/mysql/support-files
cp mysql.server /etc/init.d/mysqld #要确保mysqld具有可执行权限
mkdir -p /data/mysql
chown mysql.mysql /data/mysql/

编译成功!此处有个warning,但是不影响编译,也可以解决:

注:若是编译中途由于依赖性问题失败,解决依赖性后重新编译前要删除mysql源码包里的缓存?CMakeCache.txt?

在make时可以使用 -j 指定计算时使用的cpu核心数(虚拟机不能使用,会造成内存溢出):

make 完成后进行 make install :

?

?进入/etc/my.cnf更改配置:

将mysql可执行文件bin路径放入用户主目录的 .bash_profile 中:

?source .bash_profile 使之生效:

三、初始化mysql:

#初始化
mysqld --initialize --user=mysql
#启动数据库
/etc/init.d/mysqld start

使用初始密码登陆mysql,必须更改密码才能继续操作:

?使用mysql_secure_installation 更改密码:

注:此时为测试环境不在生产环境,所以不要密码强壮度检测插件。此时mysql初始化完成,可以正常使用数据库了。

?

四、lnmp架构的构建

接下来我们就要把整个lnmp架构串联到一起:nginx+php+mysql,java则需要tomcat:

首先,我们在nginx发布目录:/usr/local/nginx/html 下放入phpMyAdmin:

phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。通过phpMyAdmin 可以完全对数据库进行操作,例如建立、复制和删除数据等等。

?

?此文件使用php打开,使用前要打开php-fpm。在nginx的配置文件?/usr/local/nginx/conf/nginx.conf? 中添加默认首页index.php:

此时访问myadmin :

问题一:nginx找不到mysql的socket:

?解决:

vim?/usr/local/php/etc/php.ini :

?

?更改完成之后reload一下:

此时登陆成功:

?

?这个页面成功加载就说明lnmp架构部署成功。

我们由于实验环境的问题,将nginx+php+mysql都放在一台电脑上了,但是在生产环境部署时肯定是分布式部署的。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-29 19:08:56  更:2022-06-29 19:11:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年3日历 -2024/3/29 22:45:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码