Linux下安装Go并访问数据库且公网访问

8 篇文章 0 订阅
4 篇文章 0 订阅

目录

 

1、下载Golang

 2、访问数据库

3、设置后台运行go程序

4、设置开机自启动


1、下载Golang

wget https://dl.google.com/go/go1.14.2.linux-amd64.tar.gz

如果需要其他版本可以自行上官网找,然后改掉版本号。

#解压
tar -zxvf go1.14.2.linux-amd64.tar.gz
#移动到/usr/local
mv go /usr/local
#切换目录
cd /usr/local/go

添加环境变量

vim /etc/profile

添加内容

GOROOT=/usr/local/go
PATH=$PATH:$GOROOT/bin

更新文件

source /etc/profile

创建工作空间

#创建工作空间
cd $HOME
#先创建go目录,并在go目录下创建三个文件夹
mkdir -p go/src go/bin go/pkg

添加“工作空间”的环境变量

vi /etc/profile

 添加内容

GOPATH=$HOME/go

更新文件

source /etc/profile

其中,

  • bin:编译后可的执行文件的存放路径
  • pkg:编译包时,生成的.a文件的存放路径
  • src:源码路径,一般我们的工程就创建在src下面。

 查看go版本命令

go version

 

 2、访问数据库

下载驱动包

#下载驱动包
go get github.com/go-sql-driver/mysql

 如果出现下面这个提示

go: missing Git command. See https://golang.org/s/gogetcmd

package github.com/Go-SQL-Driver/MySQL: exec: "git": executable file not found in %PATH%

 可能是没有安装git

#查看有没有安装
git --version

没出现版本号表示没安装,具体安装过程可以参考这个链接:Linux下安装Git

安装成功后,重新下载mysql的驱动包,成功后在src目录下会出现个github.com的文件夹

在该文件夹下创建mysqlTest文件夹

mkdir mysqlTest
cd mysqlTest
#创建go文件
vim mysqlTest.go

 在文件内添加内容

//mysqlTest.go
package main
import (
    "fmt"
    "net/http"
    "log"
    "database/sql"
    _ "github.com/go-sql-driver/mysql"
)
func mysqlTest(w http.ResponseWriter, r *http.Request) {
        w.Header().Set("content-type", "text/html;charset=utf-8")
        fmt.Fprintf(w,"<h2>这个是Golang实现的页面</h2>\n")
        //链接数据库,root为帐号,123456为密码,user为数据库
        db, err := sql.Open("mysql", "root:123456@/user")
        if err != nil {
                log.Fatal(err)
        }
        defer db.Close()
        //查询
        rows, err := db.Query("SELECT * FROM student")
        if err != nil {
                log.Fatal(err)
        }
        defer rows.Close()
        //遍历结果集
        for rows.Next() {
                var ID int
                var name string
                var number string
                //这里根据你的数据库里有多少字段来写
                if err := rows.Scan(&ID,&number,&name); err != nil {
                                log.Fatal(err)
                }
                fmt.Fprintf(w,"<h2>这是我的number:%s</h2>\n",number)
                fmt.Fprintf(w,"<h2>这是我的name:%s</h2>\n",name)
        }
        if err := rows.Err(); err != nil {
                log.Fatal(err)
        }
}
func main() {
        //设置访问的路由
    http.HandleFunc("/mysqlTest.go",mysqlTest) 
    //设置监听的端口
    err := http.ListenAndServe(":9001", nil)
    if err != nil {
        log.Fatal("ListenAndServe: ", err)
    }
}

然后编译

#如果在当前目录下只有一个go文件,就直接下面这个命令
go build
#否则执行下面命令
go build mysqlTest.go

 然后就会出现一个同名的可执行文件

更新:在执行前,需要先将服务器上面的安全组里添加上9001端口,否则就会出现不能访问端口的问题了。不同服务器开放端口的方法略微有点差别,具体怎么开大家自行百度把。

执行

./mysqlTest

 然后就可以公网ip:9001/mysqlTest.go访问了

 如果出现类似下面这个错误,则应该是你的go文件里那个rows.scan的参数不对,自己研究一下改掉就ok了,像我数据库里有三个字段,而一开始我只写了两个字段,所以就出现了这个问题

2020/06/17 11:13:26 sql: expected 3 destination arguments in Scan, not 2
 

3、设置后台运行go程序

使用nohup命令

#command 就是你要执行的命令,2>/dev/null是将一些提示信息扔到/dev/null,这个文件相当于垃圾箱
nohup command 2>/dev/null &
#将go放在后台执行(在mysqlTest目录下执行)
nohup ./mysqlTest 2>/dev/null &
#如果不在mysqlTest目录下执行,则用绝对路径
nohup /root/go/src/mysqlTest/mysqlTest 2>/dev/null &
#可以查看后台运行的程序 
jobs -l
#可以唤回后台进行至前台,其中n为后台工作号
fg %n

然后公网ip:9001/mysqlTest.go访问测试

4、设置开机自启动

如果看过我上一篇云服务器Linux安装Nodejs,并实现连接数据库且公网访问,有在最后在/etc/init.d下创建forever文件的,就直接在那个/etc/init.d/forever文件末尾添加以下内容:

nohup /root/go/src/mysqlTest/mysqlTest 2>/dev/null &

然后重启服务器测试一下就行了。

 如果没有,就在/etc/init.d目录下创建一个文件,我这里命名为goStart

vim goStart

添加内容

#!/bin/bash
# chkconfig: 354 88 08
# description: Forever for Node.js
# 上面这段解释代码必须要,否则你添加到chkconfig会提示错误:service X does not support chkconfig
#下面的路径根据自己的改
nohup /root/go/src/mysqlTest/mysqlTest 2>/dev/null &

 然后就修改文件权限,将这个文件添加到系统中开机启动

# 第一步:下面755这一步是别的文章介绍的,不知道用不用,不过加上也无所谓,所以我也一并执行了
chmod a+x goStart
chmod 755 /etc/init.d/goStart
 
# 第二步:把goStart添加到系统服务器上开机启动
chkconfig --add /etc/init.d/goStart
 
# 第三步:启动,开启goStart服务
chkconfig goStart on 
 
#第四步:查看服务
chkconfig --list

最后重启服务器测试一下,就ok了

 

参考链接:https://blog.csdn.net/LittleSeedling/article/details/105893382

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您可以按照以下步骤在Linux上下载并安装EggNOG数据库文件: 1. 首先,您需要在EggNOG网站上下载所需的数据库文件,即`eggnog.db`.gz。您可以使用以下命令在Linux上下载该文件: ``` wget http://eggnogdb.embl.de/download/eggnog_5.0/eggnog_5.0_annotations/eggnog_5.0_annotations.db.gz ``` 2. 解压缩下载的数据库文件。您可以使用以下命令在Linux上解压缩该文件: ``` gunzip eggnog_5.0_annotations.db.gz ``` 3. 安装SQLite3软件,SQLite3是一个轻量级的数据库管理系统,EggNOG数据库使用SQLite3存储数据。您可以使用以下命令在Linux安装SQLite3: ``` sudo apt-get install sqlite3 ``` 4. 现在,您需要打开SQLite3并创建一个数据库。您可以使用以下命令在Linux上打开SQLite3: ``` sqlite3 eggnog.db ``` 5. 在SQLite3中,您需要创建一个表来存储EggNOG数据库中的注释信息。您可以使用以下命令在SQLite3中创建一个名为`annotations`的表: ``` CREATE TABLE annotations (query VARCHAR(255), seed_ortholog VARCHAR(255), evalue FLOAT, score FLOAT, predicted_name VARCHAR(255), GO_terms VARCHAR(255),KEGG_KOs VARCHAR(255), BiGG_reactions VARCHAR(255), Annotation_tax_scope VARCHAR(255), OGs VARCHAR(255)); ``` 6. 接下来,您需要将EggNOG数据库中的注释信息导入到SQLite3的`annotations`表中。您可以使用以下命令在Linux上将注释信息导入到SQLite3中: ``` sqlite3 eggnog.db ".separator '\t'\" \".import eggnog_5.0_annotations.db annotations\" ``` 7. 安装过程完成后,您可以通过以下命令测试您的EggNOG数据库是否安装成功: ``` sqlite3 eggnog.db "SELECT * FROM annotations LIMIT 10;" ``` 如果您成功运行该命令并获得了注释信息的前10行,则说明您已成功安装EggNOG数据库

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颜艾青

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值