记录一次ubuntu /mysql/redis/nginx等 系统安装

news2024/9/22 1:43:33

没想到还会做一次系统安装配置类的工作,没办法,碰到问题了,总得解决。

安装 &网络配置

从网上下载了ubuntu 18.04.6的安装包,用UltraISO做安装盘,到服务器上修改了下启动顺序,ubuntu的安装非常简单,点几次next就完成了。

安装完成后用安装过程中创建的用户登录,直接到了桌面,默认是自动获取IP地址的,插了网线或者有wifi的话,启动后就直接能上网了。网络配置功能在桌面右上角,和windows类似,操作非常简单。

系统默认使用networkManager进行网络管理,通过桌面进行网络配置,你会发现通过脚本查看/etc/netplan下的yaml配置文件,里面是空的。网上大概看了下(没做验证),脚本方式配置和左面配置网络是二选一的,如果要启用脚本方式配置网络,是需要停掉桌面配置的。既然有了桌面,就没必要通过脚本方式配置网络了,所以,也没有验证过手工写入yaml文件后是否能直接生效。

启用root用户远程登录

默认情况下,root用户没有启用,启用root用户需要:

  1. 设置root用户密码
    这个需要打开shell脚本窗口,尚未开启远程(ssh尚未安装)的话,通过ctl+alt+T打开脚本窗口:
sudo passwd root
  1. 修改/etc/ssh/sshd_config文件(用vi就可以)
    # 找到这一行
    #PermitRootLogin prohibit-password
    # 修改为
    PermitRootLogin yes
    
  2. 重启ssh
systemctl restart ssh

当然,ssh服务默认也是没有安装的,需要提前安装一下ssh服务:

sudo apt-get update

sudo apt-get install openssh-server

sudo systemctl start ssh

安装Mysql

有两种可选的方式,一种是通过apt在线安装,另外一种是从官网下载安装包,上传到ubuntu服务器之后,手动安装。

第一种方式非常简单,一条命令就能完成,开机自启等等一切都ok了。但是我不太喜欢这种方式(可能是我对ubuntu太不熟悉的缘故),因为安装之后配置文件并没有在我熟悉的位置。我主要说一下手动安装,包括下面的ng和redis。

先去官网下载安装包,我安装的是5.7.31,下载完成后上传到服务器上,比如上传到/usr/local下,解压后修改一下目录名:

mv mysql-5.7.31 mysql

之后添加用户、用户组:

groupadd mysql
useradd -r -g mysql mysql

配置my.cnf文件(vim /etc/my.cnf,加入以下内容)

[mysql]  
# 设置mysql客户端默认字符集  
default-character-set=utf8   
socket=/tmp/mysql.sock
 
[mysqld]  
#skip-name-resolve  
 
#设置3306端口  
port=3306   
 
socket=/tmp/mysql.sock
# 设置mysql的真正的安装目录 (看自己的是在哪里)
basedir=/usr/local/mysql  
 
# 设置mysql数据库的数据的存放目录 (看自己的是在哪里)
datadir=/usr/local/mysql/data  
 
# 允许最大连接数  
 
max_connections=200  
 
# 服务端使用的字符集默认为8比特编码的latin1字符雿 
character-set-server=utf8  
 
# 创建新表时将使用的默认存储引擿 
default-storage-engine=INNODB  

#大小写敏感要加,否则有些应用生成的sql语句表名称是大写的,会找不到表
lower_case_table_name=1  
 
# 非必要,如果你的应用中的groupby语句不是严格遵守SQL规范的话,必须加,要么就修改应用
sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

创建data文件夹(my.cnf文件中指定的、数据库文件存放路径):

cd mysql
#进入到/usr/local/mysql路径下
mkdir data

修改data路径的所属组、访问权限:

chown -R mysql:mysql ./
chmod -R 755 /usr/local/mysql/data

初始化数据库,非常重要的关键步骤,如果缺少依赖包的话,会报错,根据报错的提示信息,用apt install命令安装缺失的依赖包,绝大部分错误都可以解决。

sudo bin/mysqld --initialize --user=mysql

初始化成功的话,会有类似的提示信息。一定要记录下初始密码,后面要用到,没有这个密码的话,可能还得修改my.cnf文件免密登录、重新设置密码。

这个时候,通过/usr/local/mysql/support-file/mysql.server脚本可以启动服务:

./mysql.server start

接下来配置Mysql开机启动,可能会稍稍麻烦一点,因为Ubuntu属于Debian阵营,和我以前大多数情况下用的centos(是红帽阵营)是有区别的。

进入/etc/systemd/system目录,创建mysql.service文件:

[Unit]
Description= Mysql Server
After=network.target

[Service]
ExecStart=/usr/local/mysql/bin/mysqld_safe
Restart=always
User=mysql
Group=mysql
RuntimeDirectory=mysql
RuntimeDirectoryMode=2755

[Install]
WantedBy=multi-user.target

重新加载systemd配置:

sudo systemctl daemon-reload

启用mysql.service服务:

sudo systemctl enable mysql

启动服务(如果之前通过/usr/local/mysql/support-files/mysql.service脚本启动了mysql,最好再用mysql.service stop停掉服务):

sudo systemctl start mysql

检查mysql状态:

root@xxxxx:/etc/systemd/system# systemctl status mysql
● mysql.service - Mysql Server
   Loaded: loaded (/etc/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2024-09-20 15:53:35 CST; 23h ago
 Main PID: 1164 (mysqld_safe)
    Tasks: 38 (limit: 4915)
   CGroup: /system.slice/mysql.service
           ├─1164 /bin/sh /usr/local/mysql/bin/mysqld_safe
           └─1349 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/li

9月 20 15:53:35 rx-UniServer-R4900-G3 systemd[1]: Started Mysql Server.
9月 20 15:53:35 rx-UniServer-R4900-G3 mysqld_safe[1164]: 2024-09-20T07:53:35.502057Z mysqld_safe Logging to '/usr/local/mysql/data/rx-Uni
9月 20 15:53:35 rx-UniServer-R4900-G3 mysqld_safe[1164]: 2024-09-20T07:53:35.585258Z mysqld_safe Starting mysqld daemon with databases fr

如果看到以上信息的话,恭喜,安装、配置开机自启动成功了!

接下来就是通过上面说过的初始化命令登录mysql,修改root密码、新增用户、配置远程访问等等,都是mysql的常规操作了。

安装Redis

把下载的安装包上传到服务器上,然后解包(我放在/usr/local下):

tar -xzf redis-5.0.7.tar.gz
mv redis-5.0.7 redis

编译:

make

make过程中如果有报错,基本就是缺失依赖包的,apt install下载缺失的依赖包就可以。

安装:

make install PREFIX=/usr/local/redis

PREFIX指定安装路径,不指定的话安装完成后的bin直接放在/usr/local下了,比较散乱。

配置文件:

cp /usr/local/redis/redis.conf /etc/redis

配置文件保留在/usr/local/redis路径下其实也可以,启动的时候指定配置文件所在路径就可以。

接下来配置开机自启动:

cd /etc/systemd/system
vi redis.service

然后把下面内容copy到redis.service中:

[Unit]
Description=Redis Server
After=network.target

[Service]
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
User=root
Group=root
RuntimeDirectory=redis
RuntimeDirectoryMode=2755

[Install]
WantedBy=multi-user.target

其中 ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf 指定了启动redis的路径和配置文件。

之后就和mysql的启动一样了:

sudo systemctl daemon-reload
sudo systemctl enable redis

安装Nginx

安装、配置方法和redis几乎一样。但是有一个小小的需要注意的地方是,如果你解压nginx之后放在/usr/local/nginx路径下,那么在生成编译脚本的时候需要稍加注意。

比如下载nginx-1.19.9.tar.gz后,上传到/usr/local下,解压:

tar -xzf nginx-1.19.9.tar.gz
mv nginx-1.19.9 nginx

可以看到解压后的安装包就放在了/usr/local/nginx下了。

生成编译脚本:

./configure --prefix=/usr/local/nginx1 --with-http_ssl_module

prefix如果指定为/usr/local/nginx的话,会报错,原因是nginx解包之后通过命令mv nginx-1.19.9 nginx 修改安装包路径为/usr/local/nginx了,所以就不允许安装到相同路径下。所以,要么就不修改安装包路径名称为nginx,要么就向上面的方式,prefix指定为另外一个路径,安装到另外一个路径下。推荐第一种,prefix指定安装路径的/usr/local/nginx下。

如果有报错,最大的可能还是依赖包缺失,按照提示apt install安装依赖包即可。

编译:

make

安装:

make install

之后查看/usr/local/nginx,看到sbin、conf等路径,说明安装成功,默认情况下,配置文件在/usr/local/nginx/conf下。

最后,配置开机自启动:

cd /etc/systemd/system
vi nginx.service 

把一下内容copy到nginx.service文件中:

Description=nginx Server
After=network.target

[Service]
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
PIDFile=/usr/local/nginx/logs/nginx.pid
PrivateTmp=true
Restart=always
RuntimeDirectory=nginx
RuntimeDirectoryMode=2755

[Install]
WantedBy=multi-user.target

需要注意的是,nginx不是通过start stop restart status等参数进行启动、停止操作的,所以,需要额外指定ExecReload、ExecStop等参数。

最后:

sudo systemctl daemon-reload
sudo systemctl enable nginx

万事大吉!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2153842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NoSql数据库Redis知识点

数据库的分类 关系型数据库 ,是建立在关系模型基础上的数据库,其借助于集合代数等数学概念和方法来处理数据库 中的数据主流的 MySQL 、 Oracle 、 MS SQL Server 和 DB2 都属于这类传统数据库。 NoSQL 数据库 ,全称为 Not Only SQL &a…

网络丢包定位记录(二)

网卡驱动丢包 查看:ifconfig eth1/eth0 等接口 1.RX errors: 表示总的收包的错误数量,还包括too-long-frames错误,Ring Buffer 溢出错误,crc 校验错误,帧同步错误,fifo overruns 以及 missed pkg 等等。 …

K8S介绍+集群部署

Kubernetes介绍 官网:https://kubernetes.io/ 一、应用部署方式演变 1、传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其他技术的参与 缺点:不能为应用程序定义资源使用边界&a…

WAN广域网技术--PPP和PPPoE

广域网基础概述 广域网(Wide Area Network,WAN)是一种覆盖广泛地区的计算机网络,它连接不同地理位置的计算机、服务器和设备。广域网通常用于连接不同城市、州或国家之间的网络,它通过互联网服务提供商(ISP…

九芯电子革新健康检测!语音播报血压计ic芯片解决方案

血压计,可测量血压并将读数显示在屏幕上。为了提高老年人和视障人士的可用性,现代电子语音血压计已经开发出来,可提供当前血压读数的听觉反馈。这是通过集成语音芯片来实现的,该芯片将测量结果发声给用户。 (一&#x…

Java免税购物商城:Spring Boot技术实现

第二章 系统开发关键技术 2.1 JAVA技术 Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterrise JavaBeans)的全面支持,java servlet AI,JS(java server ages&#xff09…

《使用 LangChain 进行大模型应用开发》学习笔记(四)

前言 本文是 Harrison Chase (LangChain 创建者)和吴恩达(Andrew Ng)的视频课程《LangChain for LLM Application Development》(使用 LangChain 进行大模型应用开发)的学习笔记。由于原课程为全英文视频课…

银河麒麟桌面操作系统V10(SP1)离线升级SSH(OpenSSH)服务

目录 前言 准备工作 准备与目标服务器相同版本的操作系统 准备编译依赖包 下载OpenSSL源码包 下载OpenSSH源码包 升级OpenSSH服务 查看当前版本信息 安装编译依赖包 安装OpenSSL 安装OpenSSH 前言 OpenSSH是一个广泛使用的开源SSH(安全壳)协议的实现,它提供了安…

01-ZYNQ linux开发环境安装,基于Petalinux2023.2和Vitis2023.2

TFTP 服务器配置 安装安装 tftp-hpa 和 tftpd-hpa ;tftp-hpa 客户端,tftpd-hpa 为服务端 #安装 tftp-hpa 和 tftpd-hpa sudo apt-get install tftp-hpa tftpd-hpa配置服务器 #创建路径 mkdir -p ~/workspace/tftp-boot chmod 777 ~/workspace/tftp-b…

开放式耳机什么品牌好?2024年开放式蓝牙耳机排行榜推荐

​开放式耳机绝对是个不错的选择,它们长时间佩戴耳朵也不会感到疲劳,对耳朵的健康也很友好。虽然过去存在一些漏音的问题,但与它们带来的便利相比,这点儿小瑕疵几乎可以忽略不计。漏音可能会对他人造成干扰,也可能影响…

vue3(整合版)

创建第一个vue项目 1.安装node.js cmd输入node查看是否安装成功 2.vscode开启一个终端,配置淘宝镜像 # 修改为淘宝镜像源 npm config set registry https://registry.npmmirror.com 输入如下命令创建第一个Vue项目 3.下载依赖,启动项目 访问5173端口 …

年度巨献 | OpenCSG开源最大中文合成数据集Chinese Cosmopedia

01 背景 近年来,生成式语言模型(GLM)的飞速发展正在重塑人工智能领域,尤其是在自然语言处理、内容创作和智能客服等领域展现出巨大潜力。然而,大多数领先的语言模型主要依赖于英文数据集进行训练,中文数据…

python:给1个整数,你怎么判断是否等于2的幂次方?

最近在csdn上刷到一个比较简单的题目,题目要求不使用循环和递归来实现检查1个整数是否等于2的幂次方,题目如下: 题目的答案如下: def isPowerofTwo(n):z bin(n)[2:]print(bin(n))if z[0] ! 1:return Falsefor i in z[1:]:if i !…

NXP官方或正点原子mfgtool下载系统报错initialize the library falied error code:29

这是因为mfgtool版本或者源文件被破坏了,你可以重新下载一个被改过的mfgtool程序,我就是去原子官网重新在linux包里找了新的更迭过的mfgtool

VMware虚拟机因磁盘空间不足黑屏无法登录

在虚拟机里存储了一些文件之后,再打开发现进不去了,只有光标一直在左上角,登录的框都是黑的,具体如下: 明明知道登录框的存在却怎么也触碰不到它T_T ,先说解决方法: 产生这个问题的原因是因为磁…

yolov5/8/9模型在COCO分割数据集上的应用【代码+数据集+python环境+GUI系统】

yolov5/8/9模型在COCO分割数据集上的应用【代码数据集python环境GUI系统】 yolov5/8/9模型在COCO分割数据集上的应用【代码数据集python环境GUI系统】 1.COCO数据集介绍 COCO数据集,全称为Microsoft Common Objects in Context,是微软于2014年出资标注的…

多态与绑定例题

答案: B D C 知识点: 多态是相同方法不同的表现,分为重写和重载 重写体现在父类与子类不同表现,主要表现为子类重现父类的方法 重载体现在同一个类中的不同表现 绑定分为动态绑定和静态绑定 动态绑定是在运行时 静态绑定是…

动态规划算法:09.路径问题_最小路径和_C++

目录 题目链接:LCR 099. 最小路径和 - 力扣(LeetCode) 一、题目解析 题目: 解析: 二、算法原理 1、状态表示 2、状态转移方程 3、初始化 dp表初始化: 特殊位置初始化: 4、填表顺序 5、返回值 …

【HTTP】认识 URL 和 URL encode

文章目录 认识 URLURL 基本格式**带层次的文件路径****查询字符串****片段标识符** URL encode 认识 URL 计算机中非常重要的概念,并不仅仅是在 HTTP 中使用。用来描述一个网络资源所处的位置,全称“唯一资源定位符” URI 是“唯一资源标识符“严格的说…

超越极限!Qwen2.5 助力多领域智能应用

前沿科技速递🚀 近日,Qwen2.5 系列重磅发布,成为开源语言模型领域的又一里程碑。作为一款全新的通用语言模型,Qwen2.5 在支持自然语言处理的基础上,还在编程、数学等领域进行了专项优化。Qwen2.5 模型支持长文本生成&a…