在阿里云ECS CentOS7上部署基于MongoDB+Node.js的博客
前言:这是一篇教你如何在阿里云的ECS CentOS 7服务器上搭建一个个人博客的教程,教程比较基础,笔者尽可能比较详细的把每一步都罗列下来,包括所需软件的下载安装和域名的绑定,笔者在此之前对Linux系统也是了解甚少,通过这个过程,自感学到很多东西,我喜欢用文字整理并且分享,也希望因此交到更多的朋友,可能以下教程存在很多描述不清或者措辞不当的地方,还请资深人士给予指出。即使你是小白,也没关系,一步一步按照教程来,可能会遇到一些困难,多百度一下,或者跟我交流,都OK的。在教程之前,你需要对整个流程有一个初步全面的了解,主要是安装的软件列表和之间的关系。虽然这个教程是基于我自己开发的一个博客程序(前端工程师最好的全栈开发实践-设计开发属于自己的nodejs博客)来部署的,应该说除了step5以外,其他步骤都是通用的。当你用优惠券在阿里云购买了一个ECS服务器后,你需要选择一个镜像作为系统平台,支持你的程序运行,我这里用阿里自带提供的Cent OS 7,教程也是以CentOS 7为根本。接着你需要在CentOS平台上安装一些软件去支撑你的博客,这些软件有以下:
- WEB服务器(Nginx or Apache)用来做域名绑定和指向,这里是Nginx
- Node.js(支撑你的程序运行)
- MongoDB(数据库,支撑你的博客数据存储)
另外你还需要在你的windows系统安装一个连接CentOS上MongoDB数据库的工具Robomongo用于测试连接数据库和查看数据库信息,还有一个连接远程ECS服务器的工具,我推荐用MobaXterm。
Step1. 使用MobaXterm终端在windows上连接阿里云CentOS服务器
这个终端左侧有一个目录树,你可以用它像ftp一样方便的上传,编辑,下载文件,也支持从windows拖动到目录下,当然你可以在右侧一直使用命令行,对于敲命令行生疏的朋友是一个帮助。
连接很简单,依次点击左上角Session,弹窗左上角点击SSH,填写IP地址和用户名,点击保存即可,请看下图:
Step2. 在CentOS7上安装Node.js
安装有不同方式,这里用个人觉得比较简单的直接部署
方式:
进入相应目录,下载bin包
打开MobaXterm终端,一般是进入到/usr/local/src/下
cd /usr/local/src/
在https://nodejs.org/en/download/
页面找到Linux Binaries (x86/x64) ,一般是64bit,右键复制链接地址(https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.xz)
wget https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.xz
解压包
等待下载完成之后,在命令行输入 ls
,或者点击MobaXterm终端左侧目录树到当前目录下,你会看到node-v8.11.3-linux-x64.tar.xz文件,接着用下面的两行命令将xz文件先解压成tar文件,再解压成文件夹。
xz -d node-v8.11.3-linux-x64.tar.xz
此时在命令行输入 ls
,或者点击MobaXterm终端左侧目录树到当前目录下可以看到node-v8.11.3-linux-x64.tar文件,下面解压tar文件。
tar -xf node-v8.11.3-linux-x64.tar
此时在命令行输入 ls
,或者点击MobaXterm终端左侧目录树到当前目录下可以看到node-v8.11.3-linux-x64文件夹
部署bin文件
确认node.js的路径,进入node-v8.11.3-linux-x64文件夹下的bin目录,cd node-v8.11.3-linux-x64/bin
,输入pwd
获取当前node.js路径,我的是/usr/local/src/node-v8.11.3-linux-x64/bin,然后分别执行下面两行命令,给node和npm创建软链接,ln指令用于创建关联(类似Windows的快捷方式)。
ln -s /usr/local/src/node-v8.11.3-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/local/src/node-v8.11.3-linux-x64/bin/npm /usr/local/bin/npm
测试
node -v
npm -v
如果软链接关联成功,输入以上命令,会输出响应的版本号,至此,nodejs安装完毕。
Step3. 在CentOS7上安装MongoDB
这里仍然用相对最简单的安装方式。
下载和解压
打开https://www.mongodb.com/download-center
,点击Community Server选项卡,切换到Linux部分,这里的version有很多种版本,我也很困惑该如何选择,因为我是CentOS 7,后来查了相关资料,选择了RHEL 7 Linux 64-bit x64,下面是从网上摘抄为什么选择这个版本的依据资料:
CentOS和rhel最重要的区别是版权问题,redhat 的红帽图标是有版权的,CentOS被称为redhat的社区版,即大家把redhat系统里的所有图标都换了就成了centos了。再就是redhat是有相应的服务的,也是有些收费的服务,centos没有。其他都一样:使用,性能,稳定性。。。。都一样。
复制下载链接https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.0.tgz
,然后进入相应目录下载:
cd /usr/local/src
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.0.tgz
之后输入ls
,会看到mongodb-linux-x86_64-rhel70-4.0.0.tgz已经下载完毕,然后解压文件
tar -zxvf mongodb-linux-x86_64-rhel70-4.0.0.tgz
之后输入ls
,会看到mongodb-linux-x86_64-rhel70-4.0.0文件夹表示解压完毕
部署
我们把mongodb直接部署在/usr/local/src/
下面,由于文件夹文字太长,我们修改一下文件夹名称为mongodb
mv mongodb-linux-x86_64-rhel70-4.0.0 mongodb
上面命令做的事情是在
/usr/local/src
下创建一个mongodb
文件夹,然后把/usr/local/src
下面的mongodb-linux-x86_64-rhel70-4.0.0
文件夹下的内容全部移动到mongodb
下,并删除mongodb-linux-x86_64-rhel70-4.0.0
文件夹。
创建日志目录和数据文件目录
cd /usr/local/src/mongodb/
mkdir -p data/logs
mkdir -p data/db
启动MongoDB有2种方式,一是直接指定配置参数,二是指定配置文件。这里先介绍创建配置文件,如果你熟悉linux的vim命令,可以在命令行编辑,如果不熟悉,可以按照如下的方式,先在你的windows系统桌面上准备一个文件mongodb.conf,填写下列项:
port=27899
#端口号(默认的端口号是27017,这里修改也是为了安全性)
dbpath=/usr/local/src/mongodb/data/db
#数据目录(指向刚才创建的数据文件目录)
logpath=/usr/local/src/mongodb/logs/mongodb.log
#日志目录(指向刚才创建的日志目录,并指定mongodb.log文件名,系统会自动创建)
fork=true
#设置后台运行
logappend=true
#日志输出方式(写日志的模式:设置为true为追加。默认是覆盖。如果未指定此设置,启动时MongoDB的将覆盖现有的日志文件。)
auth=true
#开启认证(默认是flase,不需要认证的,这里开启认证是为了安全性)
然后通过MobaXterm直接拖到/usr/local/src/mongodb/
目录下。
启动和终止
进入/usr/local/src/mongodb/bin/
目录下,启动MongoDB
cd /usr/local/src/mongodb/bin/
./mongod --config ../mongodb.conf
如果启动成功,你会看到以下内容:
2018-07-11T17:45:05.312+0800 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
about to fork child process, waiting until server is ready for connections.
forked process: 12674
child process started successfully, parent exiting
你可以通过ps aux |grep mongodb
命令查看mongodb进程是否开启
root 12674 1.6 3.6 1084292 69128 ? Sl 17:45 0:01 ./mongod --config ../mongodb.conf
root 12705 0.0 0.0 112660 964 pts/0 R+ 17:46 0:00 grep --color=auto mongodb
第一个就是刚刚启动的进程,12674是进程ID,如果你想终止进程,可以用kill -9 12674
来终止。
进入终端操作数据库
cd /usr/local/src/mongodb/bin/
./mongo --port=27899
这里说明一下,因为你的conf配置文件的端口改成了27899,所以这里启动终端要指定端口号,如果是27017默认端口号,则不需要指定,直接./mongo
就可以进入交互控制台,接着你输入show dbs
,就会看到以下默认集合:
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
假如你在本地的windows环境安装MongoDB,通常我们测试是否开启MongoDB的办法是直接在浏览器输入http://127.0.0.1:27017
去查看,但是linux系统并不方便,我们还可以用一个命令去查看是否开启:
netstat -anpt|grep 27899 27899是MongoDB的进程端口号
如果正常开启,你会看下以下的信息,注意这里的ip地址是0.0.0.0,而不是127.0.0.1,这是因为我在mongodb.conf文件里面加了bind_ip = 0.0.0.0
,代表外网也可以连接这个阿里云的Mongodb,这里牵扯很多内容,具体在下面讲。
tcp 0 0 0.0.0.0:27899 0.0.0.0:* LISTEN 12674/./mongod
从外网访问阿里云的MongoDB
通常情况下,你的MongoDB成功启动后,你在浏览器端输入你的ECS服务器的公网IP再加上你自己的MongoDB的端口号(例如:http://47.98.xxx.152:27899),可以看到It looks like you are trying to access MongoDB over HTTP on the native driver port.
信息,如果访问不到,可能有以下三种情况:
你的阿里云ECS服务器的安全组没有设置对外网开放
阿里云的服务器为了安全,默认的禁止外网访问,早期的ECS服务器是可以访问的,最新的centos7+版本没有开启安全组,你需要在阿里云后台的安全组设置规则,具体操作请在阿里云后台提交工单咨询,下面是我的咨询结果,供大家参考。
****** : 服务器IP : 47.98.xxx.152:27899
问题描述 : 我已经安装了mongodb,并且启动了,但是我在外网访问不了47.98.xxx.152:27899,请帮忙排查
2018-07-10 15:20:34
工程师 62134 号 : 您好,我们已经收到您提交的问题,正在为您查看,请稍等
2018-07-10 15:22:29
工程师 62134 号 : 尊敬的客户您好,根据您的反馈,我们将问题定义如下:
[问题总结]
实例名ID :i-bp1ixbos2x1xxxxxxx
客户端IP地址 : 47.98.xxx.152
出现问题时间段 : 2018-07-10 15:20:34
问题描述 :我已经安装了mongodb,并且启动了,但是我在外网访问不了47.98.xxx.152:27899
接下来,我们将对上述问题进行分析排查,如果针对上述问题定义及范围有任何疑问,欢迎随时联系我们。
[处理意见]
您好:
请您在安全组添加一条允许27017端口的策略。
添加安全组规则请您参考:https://help.aliyun.com/document_detail/25471.html?spm=5176.11065259.1996646101.searchclickresult.5bc177d5XwTU1y
防火墙没有关闭
systemctl status firewalld 查看防火墙状态
systemctl start firewalld 开启防火墙
systemctl stop firewalld 关闭防火墙
以上是CentOS的防火墙命令,你可以输入systemctl status firewalld
查看防火墙状态,如果防火墙是关闭的,你会看到下列信息:
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
Active: inactive (dead) 这里表示防火墙是关闭的状态
Docs: man:firewalld(1)
如果是开启状态,Active一栏是Active: active (running) since Thu 2018-07-12 11:18:45 CST; 2s ago
如果你并不希望关闭防火墙,但是希望仍然能打开MongoDB的端口,你可以单独开启MongoDB端口,比如你的MG端口是27899,你可以使用下列命令永久打开这个端口:
firewall-cmd --zone=public --permanent --add-port=27899/tcp; firewall-cmd --reload
成功后会显示两个success
[root@frogo2 bin]# firewall-cmd --zone=public --permanent --add-port=27899/tcp; firewall-cmd --reload
success
success
地方法针对端口,适用所有端口的开启。如果你想知道你永久打开了哪些端口,你可以通过以下命令:
firewall-cmd --list-ports
MongoDB.conf文件bind_ip
参数应该设置为0.0.0.0
在终端输入命令行netstat -anpt|grep 27899
,如果显示的IP地址是127.0.0.1,说明MongoDB端口只对本地开放,需要将MongoDB.conf文件增加bind_ip=0.0.0.0
,表示外网可以访问本地的MongoDB
port=27899
#端口号(默认的端口号是27017,这里修改也是为了安全性)
dbpath=/usr/local/src/mongodb/data/db
#数据目录(指向刚才创建的数据文件目录)
logpath=/usr/local/src/mongodb/logs/mongodb.log
#日志目录(指向刚才创建的日志目录,并指定mongodb.log文件名,系统会自动创建)
fork=true
#设置后台运行
logappend=true
#日志输出方式(写日志的模式:设置为true为追加。默认是覆盖。如果未指定此设置,启动时MongoDB的将覆盖现有的日志文件。)
auth=true
#开启认证(默认是flase,不需要认证的,这里开启认证是为了安全性)
bind_ip=0.0.0.0
#对外开放端口(默认是127.0.0.1)
修改完mongodb.conf,先kill -9 掉原先的mongodb进程,然后进入bin目录,重启mongodb。
cd /usr/local/src/mongodb/bin/
./mongod --config ../mongodb.conf
此时在netstat -anpt|grep 27899
会看到IP地址改成了0.0.0.0,然后在浏览器端输入你的ECS服务器的公网IP再加上你自己的MongoDB的端口号去测试是否成功。
Step4.给MongoDB开启密码访问
MongoDB 默认是没有开启安全认证的,对于部署在云上就显得及其不安全,下面我们为mongodb的admin数据库创建用户。
MongoDB数据库有以下特点:
1,没有默认管理员账号,所以要先添加管理员账号,在开启权限认证。 2,切换到admin数据库,添加的账号才是管理员账号。 3,用户只能在用户所在数据库登录,包括管理员账号。 4,管理员可以管理所有数据库,但是不能直接管理其他数据库,要先在admin数据库认证后才可以。这一点比较特别。
首先cd 到bin目录:
cd /usr/local/src/mongodb/bin/
./mongo --port=27899 进入MongoDB交互台,如果是默认是27017,则不需要加上后面的--port参数
在控制台输入
show dbs
你会看到以下数据库,blog是你刚才创建的
> show dbs
admin 0.000GB
blog 0.000GB
config 0.000GB
local 0.000GB
使用 use admin 切换到admin数据库
> use admin
switched to db admin
使用db.createUser()函数在admin数据库下创建用户,老版本的MongodDB是db.addUser()函数,这里注意一下,因为网上很多没有指明版本
> db.createUser({user:"root",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
Successfully added user: {
"user" : "root",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
我们看到已经成功在admin下创建了一个用户名为root,密码为123456的用户
userAdminAnyDatabase:授予在所有数据库上管理User的权限-意思是可以在所有的数据库管理User,但是没有操作权利,只有你在那个数据库验证了User,然后才能去操作数据库的读写。(如果不能白,可以百度MongoDB的role方面知识)
现在我们成功的创建了用户和密码,下面请将mongodb.conf文件中的开启安全认证项修改为true
cd /usr/local/src/mongodb
用vim 命令或者通过MobaXterm终端直接修改文件,文件最后呈现以下样子
# idae - MongoDB config start
# 设置数据文件的存放目录(根据实际的db文件夹的路径填写)
dbpath = /usr/local/src/mongodb/data/db
# 设置日志文件的存放目录及其日志文件名(根据实际的logs文件夹的路径填写)
logpath = /usr/local/src/mongodb/data/logs/mongodb.log
# 设置端口号(默认的端口号是 27017)
port = 27899
# 设置为以守护进程的方式运行,即在后台运行
fork = true
# 日志
logappend=true
# 开启认证
auth = true
# 开启远程访问
bind_ip = 0.0.0.0
然后找到MongoDB进程,先kill掉,再重启
[root@frogo2 mongodb]# ps aux |grep mongodb
root 22083 0.2 4.5 1078336 85724 ? SLl Jul19 2:38 ./mongod --config ../mongodb.conf
root 23111 0.0 0.0 112660 964 pts/1 R+ 11:07 0:00 grep --color=auto mongodb
[root@frogo2 mongodb]# kill -9 22083
[root@frogo2 mongodb]# cd bin
[root@frogo2 bin]# ./mongod --config ../mongodb.conf
2018-07-20T11:08:32.841+0800 I CONTROL [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
about to fork child process, waiting until server is ready for connections.
forked process: 23115
child process started successfully, parent exiting
然后再次打开MongoDB交互台,使用show dbs命令会报出未验证的提示:
./mongo --port=27899 进入MongoDB交互台
> show dbs
2018-07-20T11:09:51.770+0800 E QUERY [js] Error: listDatabases failed:{
"ok" : 0,
"errmsg" : "command listDatabases requires authentication",
"code" : 13,
"codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:65:1
shellHelper.show@src/mongo/shell/utils.js:865:19
shellHelper@src/mongo/shell/utils.js:755:15
@(shellhelp2):1:1
我们可以看到结果显示失败未验证,说明我们刚才开启MongoDB密码登录成功,下面我们需要验证,首先切换到admin数据库下,也就是说,验证步骤必须在admin数据库下面进行
> use admin
switched to db admin
> show collections
Warning: unable to run listCollections, attempting to approximate collection names parsing connectionStatus
> db.auth("root","123456")
1
> show dbs
admin 0.000GB
blog 0.000GB
config 0.000GB
local 0.000GB
db.auth()函数是验证方法,可以看到显示结果1表示成功验证,这个时候我们再show dbs,就成功显示了。 这个时候我们就可以对数据库任意操作了。
现在我们尝试用Robomongo工具在外部连接MongoDB数据,你需要在Authentication一栏填写数据库名和用户名密码
Step5.在CentOS7上部署node.js BLOG程序
1.我们把blog文件放在home目录下,cd 到home下面,clone你的blog代码到目录下(或者打开MobaXterm终端左侧的目录树,把blog拖到home 目录下)
安装node依赖包
npm install
修改config.js文件中的数据库连接
//mongodb配置信息
mongodb: {
uri: 'mongodb://root:123456@localhost:27899/blog',
options: {}
},
运行node app.js
,如果成功,会提示服务已经启动,端口号:7000
安装forever守护进程,以保证node可以持续工作。
npm install forever -g 全局安装
输入forever
如果报错bash: forever: command not found
,则需要建立一个软连接:
找到forever安装路径npm list -g --depth 0
[root@frogo2 ~]# npm list -g --depth 0
/usr/local/src/node-v8.11.3-linux-x64/lib
├── forever@0.15.3
└── npm@5.6.0
/usr/local/src/node-v8.11.3-linux-x64/lib/node_modules/forever
就是安装路径,你也可以打开MobaXterm终端去查看它的位置,然后使用ln -s
建立软连接
ln -s /usr/local/src/node-v8.11.3-linux-x64/lib/node_modules/forever/bin/forever /usr/bin/forever
再次输入forever
就不会报错command not found
了,下面是forever的命令
//用forever启动 forever start xxx.js
//重启 forever restart xxx.js
//查看进程 forever list
//停止 forever stop xxx.js
我们可以用以下命令启动app.js
cd /home/blog/
forever start app.js
出现以下信息表示成功启动,这个时候,你关掉了MobaXterm终端也没关系。
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: app.js
然后用阿里云服务器公网的IP+7000端口号,就可以访问到该blog的页面了。
Step6.在CentOS7上安装Nginx服务器并绑定域名到博客
阿里云的CentOS7默认是没有安装WEB服务器的,基本主流的WEB服务器就是apache和nginx,如果安装了WEB服务器,80端口默认是打开的,你可以用netstat -an|grep :80 查看是否安装了WEB服务器。
在这里,我推荐用nginx,因为轻量级,比较简单,具体安装教程也相对容易,请参考教程https://www.cnblogs.com/jerrypro/p/7062101.html。
安装完nginx以后进入/usr/local/nginx/sbin/
下执行./nginx
启动WEB服务,这个时候你输入阿里云ECS的公网IP看到粗体Welcome to nginx!字样信息表示安装和启动nginx成功。由于博客的程序端口是7000,而默认web服务器是80,在这里你需要在ngnix的conf文件设置一下代理 ,首先进入到/usr/local/nginx/conf/
目录下,打开目录下的ngnix.conf文件,找到server{}代码块,在location /{}里面增加proxy_pass http://127.0.0.1:7000;,这个地址是指向blog程序的,另外把你需要绑定的域名写在server_name 后面,其他的项被注释的你可以自由配置。
server {
listen 80;
#server_name localhost;
server_name www.frogo.me;(需要绑定的域名)
#root /home/frogo;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
proxy_pass http://127.0.0.1:7000;(指向7000,就是你node.js博客程序的端口)
#root /home/frogo;
#index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
然后 cd 到/usr/local/nginx/sbin/
下面,执行 nginx -s reload
,即可成效,这个时候剩下最后一件事,就是将你的域名的A记录绑定到你的ECS服务器的公网IP上面。不久以后,当你访问域名,即可看到你的blog程序。
作者:frogo
链接:https://www.jianshu.com/p/f8b0d088a032
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
在阿里云ECS CentOS7上部署基于MongoDB+Node.js的博客的更多相关文章
- 一个基于Vue.js+Mongodb+Node.js的博客内容管理系统
这个项目最初其实是fork别人的项目.当初想接触下mongodb数据库,找个例子学习下,后来改着改着就面目全非了.后台和数据库重构,前端增加了登录注册功能,仅保留了博客设置页面,但是也优化了. 一.功 ...
- 使用Navicat远程连接阿里云ECS服务器上的MySQL数据库
一.必须给服务器的安全组规则设置端口放行规则,在管理控制台中设置: 之后填写配置,授权对象是授权的IP,其中0.0.0.0/0为所有IP授权,之后保存; 二.Navicat使用的配置 在编辑连接处,要 ...
- 解决阿里云ECS下kubeadm部署k8s无法指定公网IP
背景 一般情况下,"kubeadm"部署集群时指定"--apiserver-advertise-address=<public_ip>"参数,即可在 ...
- 在阿里云容器服务上开发基于Docker的Spring Cloud微服务应用
本文为阿里云容器服务Spring Cloud应用开发系列文章的第一篇. 一.在阿里云容器服务上开发Spring Cloud微服务应用(本文) 二.部署Spring Cloud应用示例 三.服务发现 四 ...
- 阿里云函数计算上部署.NET Core 3.1
使用阿里云ECS或者其他常见的VPS服务部署应用的时候,需要手动配置环境,并且监测ECS的行为,做补丁之类的,搞得有点复杂.好在很多云厂商(阿里云.Azure等)提供了Serverless服务,借助于 ...
- 一个空行引起的阿里云负载均衡上部署https证书的问题
今天在阿里云上购买了WoSign的https证书,在证书签发后,在控制台下载证书文件,一共有2个文件,一个是.key文件(私钥文件),一个是.pem文件(证书文件). 然后在阿里云负载均衡“证书管理” ...
- 阿里云ECS服务器上搭建keepalived+mha+mysql5.6+gtid+一主两从+脚本判断架构踩的坑
最近,公司项目搭建了一套后端数据库架构,不是在RDS,是在阿里云的ECS服务器上搭建keepalived.mha.mysql5.6.gtid.一主两从架构,目前还没有实现读写分离,以后架构升级,可能代 ...
- 使用Navicat连接阿里云ECS服务器上的MySQL数据库
一.首先要mysql授权 mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的mysql数据库密码' WITH GR ...
- 在centos7上安装gcc、node.js(源码下载)
一.在centos7中安装node.js https://www.cnblogs.com/lpbottle/p/7733397.html 1.从源码下载Nodejs cd /usr/local/src ...
随机推荐
- vertical-align作用的前提++图片不上下居中
5.3.2 vertical-align作用的前提 很多人,尤其CSS新手,会问这么一个问题:“为什么我设置了vertical-align却没任何作用?” 因为vertical-align起作用是有前 ...
- C#两种基本的冒泡排序算法
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI ...
- Vue:window.onresize
1. 添加属性screenHeight 和 timer. screenHeight: window.innerHeight timer: '' // window.onresize函数频繁调用时,页 ...
- 解决svn更新项目目录时“Error:svn: E155037: Previous operation has not finished; run 'cleanup' if it was interrupted”的报错问题
今天在IDEA更新项目目录时,发现报错“Error:svn: E155037: Previous operation has not finished; run 'cleanup' if it was ...
- VBA开发手记
本博文,将主要记录VBA for Excel项目中遇到并解决的问题,不定期更新. 1.日期单元格前面加空格就变成文本了,find查找参数注意:what:=Cstr(Date),lookat:=2 2. ...
- Zabbix (三)
一.zabbix支持的主要监控方式: zabbix主要Agent,Trapper,SNMP,JMX,IPMI这几种监控方式,本文章主要通过监控理论和实际操作测试等方式来简单介绍这几种方式的监控原理和优 ...
- python Request模块
---恢复内容开始--- Request的五种请求方式: request.get() request.post() request.head() requst.put() request.patch( ...
- vim的简单使用以及一些常用的命令
对于第一次用vi,有几点注意要提醒一下:1.用vi打开文件后,是处于「命令行模式(command mode)」,您要切换到「插入模式(Insert mode)」才能够输入文字.切换方法:在「命令行模式 ...
- java servlet的域对象
在进行网络编程中的项目时 经常用到的域对象主要包括以下三种: 1. ServletContext 作用范围比较大 代码如下: //一个请求代码: ServletContext sc = reques ...
- 《ServerSuperIO Designer IDE使用教程》-2.与硬件网关数据交互,并进行数据级联转发,直到云端。发布:v4.2.1版本
v4.2.1 更新内容:1.重新定义数据转发文本协议,使网关与ServerSuperIO以及之间能够相关交互数据.2.扩展ServerSuperIO动态数据类的方法,更灵活.3.修复Designer增 ...