在linux服务器上安装nodejs,mysql8

522 阅读6分钟

前言:

最近有个小目标,想要学习一下如何将前端项目部署到我的阿里云服务器上.我对linux系统的了解,基本上是从零开始的,所以即便是完成了环境配置,知识点也比较凌乱,有必要去梳理一下.

服务器:阿里云服务器ECS

(其实使用轻量服务器会更简单,有些镜像实例已经安装好通用的nodejs基础环境,但是想要自定义安装就用ECS)

登陆服务器工具:Xshell 6

linux系统类型:CentOS7 64位

(据我所知有三种linux系统类型,centos对新手相对友好)

nodejs的安装

1.编译安装(服务器性能有限,编译慢,不推荐)

2.通过 yum 进行安装(安装的未必是最新版,不推荐)

3.直接安装编译好的 Nodejs(推荐)

1.保证阿里云服务器实例是启动状态;

2.用Xshell登陆服务器:

问题:我初次登陆遇见了不允许输入密码的情况,只能输入Public Key:
解决方案:

.打开服务器实例详情,打开远程连接:

.输入连接密码,注意远程连接密码,与服务登陆密码不是一回事

.输入服务器账号,密码

.修改/etc/ssh/sshd_config文件配置,输入

vim /etc/ssh/sshd_config

打开sshd_config文件,添加

PasswordAuthentication yes 是否可以密码认证,修改成yes

.然后重启sshd服务

service sshd restart

就可以正常登陆,当然用public key登陆会更安全

linux以/作为根目录,xshell中不同的文件/文件夹颜色均不相同,代表着不同的含义,相关知识点可参照文末链接;

3.下载对应的二进制文件:一般下载到在/usr/src文件夹下(我曾经下载到/usr/local/src处,并在此处建立软链接,但是链接不可用)

wget -c https://nodejs.org/dist/v10.16.0/node-v10.16.0-linux-x64.tar.xz

4.提取文件:

tar -xvf node-v10.16.0-linux-x64.tar.xz

5.将解压缩的文件夹重命名为nodejs,文件夹路径不变,当然也可以放到别的路径

mv node-v10.16.0-linux-x64 ./node

nodejs中的bin文件夹中的node与npm

6.该方式安装,Nodejs 的命令 node 和 npm 并不能在全局使用,所以需要建立两个软连接,连接到全局的可执行文件存放处,即/usr/bin处

sudo ln -s /usr/src/nodejs/bin/node /usr/bin/node

sudo ln -s /usr/src/nodejs/bin/npm /usr/bin/npm

/usr/bin文件夹存在node,npm链接

node,npm链接到node下载处的可执行文件
node 和 npm 可以在全局使用,同样输入命令 node -v或者sudo node 来检查 Nodejs 是否安装成功

MySQL8的安装

1.去官网选择安装包(mysql的linux系统版本特别多,我换过几个版本安装,核心功能应该没有区别,mini版的会少一些配置,可能需要手动去配.我的服务器是64位x86架构,选择了图示版本,里面不是每个压缩包我都用到了!)

点击DownLoad,跳转至新页面

2.依旧在/usr/src下载安装包并解压

wget -c https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.17-linux-glibc2.12-x86_64.tar

3.修改文件夹名称(便于查找)

4.在MySQL根目录下新建一个文件夹data,用于存放数据

mkdir data

5.创建 mysql 用户组和 mysql 用户(简单来讲,Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。详情参见第三部分)

6.改变 mysql 目录权限

chown -R mysql.mysql /usr/src/mysql/

7.初始化数据库 在mysql文件夹下创建mysql_install_db安装文件


mkdir mysql_install_db

chmod 777 ./mysql_install_db //mysql_install_db文件权限就被修改为可读可写可执行

进入bin文件夹,初始化

遇见问题:linux libaio.so.1: cannot open shared object file: No such file or directory

解决:缺少安装包libaio和libaio-devel.用yum install libaio*。自动安装这两个包

重新初始化,此时mysql的密码为空 或者在bin下使用命令

./mysqld --initialize-insecure --user=mysql --basedir=/usr/src/mysql --datadir=/usr/src/mysql/data

8.修改mysql的配置文件my.cnf

cd /etc
vim my.cnf

9.mysql配置(把mysql放到本地系统服务中)

# 将mysql.server复制到本地服务对应处
cp -a ./support-files/mysql.server /etc/init.d/mysqld
# chmod +x给予文件权限,变为绿色的可执行文件
chmod +x /etc/rc.d/init.d/mysqld
# mysql服务添加到添加到系统服务
chkconfig --add mysqld
# 检查服务是否生效
chkconfig  --list mysqld

10.配置全局环境变量 编辑 / etc/profile 文件

 vim /etc/profile

在 profile 文件底部添加如下两行配置,保存后退出

export PATH=$PATH:/usr/src/mysql/bin:/usr/src/mysql/lib

export PATH 设置环境变量立即生效 source /etc/profile

11.启动MySQL服务 service mysql start

12.登录MySQL mysql -u root -p密码

或者直接输入mysql,因为此时无密码

13.设置root账户可以远程登陆(也可以在此时修改密码)

flush privileges; // 刷新权限

14.防火墙开放3306端口

立即启动防火墙 systemctl start firewalld.service

设置开机启动防火墙 systemctl enable firewalld.service

开放3306端口 firewall-cmd --zone=public --query-port=3306/tcp

重启防火墙或者重新载入防火墙规则

systemctl restart firewalld.service

或者firewall-cmd --reload

查看所有打开的端口:

firewall-cmd --zone=public --list-ports

15.修改阿里云服务器安全组规则

16.用自己的电脑远程访问3306端口测试

可以使用DBeaver或者Navicat等mysql可视化管理工具登陆远程mysql

或者使用windows自带的telnet工具,检测是否启用该工具

在cmd窗口输入

telnet 阿里云服务器公网IP 3306

未失败,即为成功

相关知识点及链接

xshell连接服务器无法用password登录,只能用public key的解决办法

链接

inux系统中vim编辑器的操作

链接1 链接2

阿里云centos环境之修改ssh默认端口

链接

linux软件包管理器

链接

centos下安装开发者工具

链接

linux查看文件目录信息ls命令详解

链接

CentOS 7.0 配置防火墙

链接1 链接2

linux根目录下的文件夹详解

链接

linux系统nodejs部署参考文档

链接1 链接2

linux的tar压缩和解压

链接1 链接2

关于 SSH 工具(xshell 6)里文件的颜色及含义

链接1 链接2

linux用户管理和权限

链接1 链接2

端口扫描工具

链接1 链接2

iptables与firewalld两种防火墙机制

链接1 链接2