golang微服务 go-micro ubuntu18全栈环境搭建、安装goland、mysql、redis、protobuf、consul、micro等

1 篇文章 0 订阅
1 篇文章 0 订阅

环境搭建

linux启动盘制作

深度启动盘制作工具:在Windows系统下制作Ubuntu的U盘启动工具_Linux软件_云网牛站

https://github.com/linuxdeepin/deepin-boot-maker

win10下硬盘安装ubuntu双系统

https://www.cnblogs.com/iamnewsea/p/7701464.html

基于ubuntu18.04 64位

我是使用的ubutnu Budgie, 界面好看,可以在自带商店中安装软件商店,比如goland。原版ubuntu也挺好看的,看你喜欢。

1.安装ubuntu使用中安装,安装完后,设置为英文(保留用户英文目录)、再切换回中文方便使用,个人喜好

换163源、安装golang、goland、beego、mysql、redis、consul、micro、protobuf、搜狗拼音输入法、docker、docker-compose等,

其他工具 如wps,postman,RDM,kafka tools,Robo3t,Typora,SecureCRT等可以搜下就有了;完全可以ubuntu写代码办公了

SecureCRT8.5 完全支持ubuntu18,之前的版本安装不上,我的资源有文件;redis图形工具 新版RDM我的资源也有,欢迎下载;

其他安装参考下文,如:navicat 、安装samba、beyond compare等

如果使用ubuntu办公,ubuntu安装其他软件,qq等 

https://elementaryos.cn/#download

Chromium

https://github.com/jjqqkk/chromium/blob/master/README.md

集群搭建使用vmware安装ubuntu,vmware克隆或复制镜像,不能桥接的问题

1. 打开vmware 编辑-虚拟网络编辑器-桥接-选择主机相同的以太网卡,

2. 打开虚拟机设置-删除 该机的网络配置,再添加一个。

  • 先安装vim

sudo apt install vim

换源

sudo vi /etc/apt/sources.list

删除原文本粘贴163源

deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse

设置中文(安装时用英文可以保留home 英文目录,方便终端操作)

#sudo vim /etc/default/locale

中文设置为:

LANG="zh_CN.UTF-8"

LANGUAGE="zh_CN:zh"

LANG="zh_CN.UTF-8"

LANGUAGE="zh_CN:zh"

修改为:

LANG="en_US.UTF-8"

LANGUAGE="en_US:en"

LANG="en_US.UTF-8"

LANGUAGE="en_US:en"

将相应的zh改成en,将CN改成US

然后需要重启生效。

  • 安装 golang

ubuntu商店可以直接安装goland

wget https://studygolang.com/dl/golang/go1.13.4.linux-amd64.tar.gz

sudo tar -zxf go1.13.4.linux-amd64.tar.gz -C /usr/local

/usr/local/go/bin/go version

配置环境变量

局部

vim ~/.profile

source ~/.profile

全局

vim /etc/profile

source /etc/profile

mac环境变量设置

export GOPATH=$HOME/go

export PATH=$HOME/bin:$GOPATH/bin:$PATH

ubuntu环境变量

export GOPATH=$HOME/work/go

export GOROOT=/usr/local/go

#export GOARCH=386

export GOOS=linux

export GOTOOLS=$GOROOT/pkg/tool

export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

  • 安装goland

从ubuntu商店安装goland,下载时间较长

snap提示has “install-snap” change in progress 错误

barry@pc:~/work/go/src$ snap changes

7 Doing today at 02:13 PDT - Install "goland" snap

barry@pc:~/work/go/src$ sudo snap abort 7

安装位置

/snap/goland

  • 安装git

sudo apt install git

安装beego、bee

测试 GOPATH

$ go get -v -u github.com/astaxie/beego $ go get -v -u github.com/beego/bee

go get github.com/beego/bee: open /usr/local/go/bin/bee: permission denied

安装提示没有权限,修改/usr/local/go/bin 权限755

注: 如果不能使用,将 gopath bin目录下的bee 拷贝到 /bin

  • 安装mysql

参考: Ubuntu 18.04 安装mysql5.7_Mysql_脚本之家

mysql> create user 'barry'@'%' identified by '123456789'; Query OK, 0 rows affected (0.00 sec)

> use mysql; > update user set authentication_string=PASSWORD("这里输入你要改的密码") where User='root'; #更改密码

> update user set plugin="mysql_native_password"; #如果没这一行可能也会报一个错误,因此需要运行这一行 > flush privileges; #更新所有操作权限

> quit;

> sudo /etc/init.d/mysql stop > sudo /etc/init.d/mysql start # reset mysql > mysql -u root -p

lqt@u:~/stellar$ sudo cat /etc/mysql/debian.cnf

# Automatically generated for Debian scripts. DO NOT TOUCH!

[client]

host = localhost

user = debian-sys-maint

password = 6grgtMsFLGhRU0x1

socket = /var/run/mysqld/mysqld.sock

[mysql_upgrade]

host = localhost

user = debian-sys-maint

password = 6grgtMsFLGhRU0x1

socket = /var/run/mysqld/mysqld.sock

lqt@u:~/stellar$ mysql -udebian-sys-maint -p

use mysql

select host, user, authentication_string from user;

删除root

drop user root;

创建用户root

create user 'root'@'%' identified by '123456789';

赋予权限 从外部操作所有数据库.所有数据表的所有权限(没有外部客户端的IP限制,但本地有限制)

grant all privileges on *.* to 'root' WITH GRANT OPTION;

登录mysql如果没有权限就给其赋值

show grants for 'root';

flush privileges;

quit;

允许外网链接

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

注释

#bind-address = 127.0.0.1

插件

go get github.com/go-sql-driver/mysql

  • 安装 redis

如果安装有问题,可以用sudo apt install redis-server直接安装

wget http://download.redis.io/releases/redis-3.2.8.tar.gz

解压

sudo mv ./redis-3.2.8 /usr/local/redis

cd /usr/local/redis/

sudo make

cd src

sudo make test

barry@pc:/usr/local/redis/src$ sudo make test

You need tcl 8.5 or newer in order to run the Redis test

Makefile:225: recipe for target 'test' failed

make: *** [test] Error 1

需要安装tcl包

wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz

sudo tar xzvf tcl8.6.1-src.tar.gz -C /usr/local/

cd /usr/local/tcl8.6.1/unix/

sudo ./configure

sudo make

sudo make install

安装完后重新回到redis目录

sudo make install 安装redis

barry@pc:~/soft$ sudo vi /etc/redis/redis.conf

# modify by Barry

允许外网链接

#bind 127.0.0.1 ::1

bind 0.0.0.0

protected-mode no

barry@pc:~/soft$ /etc/init.d/redis-server restart

设置密码 一般不设置

sudo vi /etc/redis/redis.conf

501 #

502 #requirepass foobared

503 requirepass 123456 //设置密码

或者

 redis 127.0.0.1:6379> config set requirepass 123456

 查询密码:

 redis 127.0.0.1:6379> config get requirepass

 (error) ERR operation not permitted //没有权限

 密码验证:

 redis 127.0.0.1:6379> auth 123456

 OK

 再次查询:

 redis 127.0.0.1:6379> config get requirepass

 1) "requirepass"

 2) "123456"

启动redis

sudo redis-server /etc/redis/redis.conf

本机登录

redis-cli -p 6379 -a 123456

远程连接

redis-cli -h 138.138.138.138  -p  6379 

中文

redis-cli --raw

  • 安装protobuf

git clone https://github.com/protocolbuffers/protobuf.git

#安装依赖库

$ sudo apt-get install autoconf automake libtool curl make g++ unzip libffi-dev -y

$ cd protobuf/

$ ./autogen.sh

$ ./configure

$ make

$ sudo make install

$ sudo ldconfig # 刷新共享库 很重要的一步啊

#安装的时候会比较卡

$ protoc --version

#成功后需要使用命令测试

  • 安装consul

# 这里以 Linux系统为例:

$ wget https://releases.hashicorp.com/consul/1.6.0/consul_1.6.0_linux_amd64.zip

$ unzip consul_1.6.0_linux_amd64.zip $ mv consul /usr/local/bin/

其他版本 Consul Versions | HashiCorp Releases

  • 安装grpc

翻墙下载golang.org/x 和google.golang.org

#将x.zip 解压到 $GOPATH/src/golang.org/x 目录下 $ unzip x.zip -d /GOPATH/src/golang.org/x

#-d 是指定解压目录地址 #/home/barry/work/go/src/golang.org

#文件名为x

#将google.golang.org.zip 解压到 $GOPATH/src/google.golang.org 目录下

测试

cd /home/barry/work/go/src

先运行server

go run google.golang.org/grpc/examples/helloworld/greeter_server/main.go

2019/09/11 16:11:15 Received: world

运行client

go run google.golang.org/grpc/examples/helloworld/greeter_client/main.go

  • 安装 micro

参照 https://github.com/micro/micro

error 作者告知,使用go1.13不存在问题,我更新golang到1.13之后确实没有如下问题

修改包链接地址、注释掉ARM64

这样修改之后不知道有什么隐患,估计arm64平台会跑不了了,目前对于我没有影响

barry@pc:~/work/go/src/github.com/marten-seemann/qtls$ go build

tls.go:22:2: cannot find package "crypto/ed25519" in any of:

/usr/local/go/src/crypto/ed25519 (from $GOROOT)

/home/barry/work/go/src/crypto/ed25519 (from $GOPATH)

auth.go:12:2: cannot find package "golang.org/x/rypto/ed25519" in any of:

/usr/local/go/src/golang.org/x/rypto/ed25519 (from $GOROOT)

/home/barry/work/go/src/golang.org/x/rypto/ed25519 (from $GOPATH)

barry@pc:~/work/go/src/github.com/marten-seemann/qtls$

barry@pc:~/work/go/src/github.com/marten-seemann/qtls$

barry@pc:~/work/go/src/github.com/marten-seemann/qtls$ vi tls.go

barry@pc:~/work/go/src/github.com/marten-seemann/qtls$ go build

auth.go:12:2: cannot find package "golang.org/x/rypto/ed25519" in any of:

/usr/local/go/src/golang.org/x/rypto/ed25519 (from $GOROOT)

/home/barry/work/go/src/golang.org/x/rypto/ed25519 (from $GOPATH)

barry@pc:~/work/go/src/github.com/marten-seemann/qtls$ vi auth.go

barry@pc:~/work/go/src/github.com/marten-seemann/qtls$ go build

# github.com/marten-seemann/qtls

//我的机子,如果未出现错误就不用改了

# github.com/marten-seemann/qtls

../../github.com/marten-seemann/qtls/common.go:1107:20: undefined: cpu.ARM64

vi common.go 修改这一行

1107 hasGCMAsmARM64 = false

编译

go build github.com/micro/micro

安装

barry@pc:~/work/go/src$ ls

astaxie github.com google.golang.org gopkg.in protobuf test.go

beego golang.org google.golang.org.zip micro protobuf.zip

barry@pc:~/work/go/src$

barry@pc:~/work/go/src$

barry@pc:~/work/go/src$ sudo mv micro /usrlocal/bin/ 或者直接放到/bin

[sudo] barry 的密码:

barry@pc:~/work/go/src$ micro -v

micro version 1.9.1

barry@pc:~/work/go/src$ protoc --version

libprotoc 3.9.1

barry@pc:~/work/go/src$ consul --version

Consul v1.6.0

Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)

error 作者告知,使用go1.13不存在,但是天朝的网络实在坑爹,如果遇到go.sum报错,

把依赖注释掉

  • docker脚本安装

curl https://get.docker.com/ | sh

docker-compose安装:

sudo apt-get install -y python-pip

pip install docker-compose

lqt@u:~/test$ docker version

Client: Docker Engine - Community

Version: 19.03.3

API version: 1.40

Go version: go1.12.10

Git commit: a872fc2f86

Built: Tue Oct 8 00:59:59 2019

OS/Arch: linux/amd64

Experimental: false

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version: dial unix /var/run/docker.sock: connect: permission denied

没有权限

sudo groupadd docker #添加docker用户组 sudo gpasswd -a $USER docker #将登陆用户加入到docker用户组中 newgrp docker #更新用户组 docker ps #测试docker命令是否可以使用sudo正常使用

docker compose 安装

#安装依赖工具

sudo apt-get install python-pip -y

#安装编排工具

sudo pip install docker-compose

#查看编排工具版本

sudo docker-compose version

#查看命令帮助

docker-compose --help

如果不能安装,参考官网github安装

https://github.com/docker/compose/releases

PIP 源问题

#用pip安装依赖包时默认访问https://pypi.python.org/simple/,

#但是经常出现不稳定以及访问速度非常慢的情况,国内厂商提供的pipy镜像目前可用的有:

#在当前用户目录下创建.pip文件夹

mkdir ~/.pip

#然后在该目录下创建pip.conf文件填写:

[global]

trusted-host=mirrors.aliyun.com

index-url=http://mirrors.aliyun.com/pypi/simple/

允许开机启动

$ sudo systemctl enable docker.service

至此微服务开发环境搭建完毕

  • 安装beyond compare

ubuntu18选择Linux下的Debian 64位的

sudo dpkg -i 安装包.deb

cd /usr/lib/beyondcompare/

sudo sed -i "

TODO:privatekey//请自行baidu获取方式" BCompare

输入秘钥

--- BEGIN LICENSE KEY ---

//请自行baidu获取方式

--- END LICENSE KEY -----

  • 搜狗输入法

安装网上的方法,先安装小企鹅,然后官网下载搜狗拼音

sudo dpkg -i sougouxxx.dbe

报错 errr

sudo apt install -f

再装一遍

  • 安装navicat

参考文档:

去掉https://去掉www.52pojie.cn/去掉forum.php?mod=viewthread&tid=835583

wine navicat-patcher.exe "/home/tzp/softwore/navicat_premium/Navicat" ./RegPrivateKey.pem

wine navicat-keygen.exe -text ./RegPrivateKey.pem

//如果没有wine 安装一下

此处需要启动navicat,输入请求码,

此时命令行生成一个返回码,输入到对话框里进行jh

设置中文

1.将安装目录下的./start_navicat中的字符集改为zh_CN.UTF-8

2.修改软件内的字体

字体

3.启动 ./start_navicat;查看p解情况

4.添加启动栏快捷键

按照这个添加源, https://elementaryos.cn/#download; 让后 apt install navicat

whereis navicat, 找到安装目录,

barry@T-800:~$ whereis navicat
navicat: /usr/share/navicat

接下来把之前的navicat放到这个目录下替换,就有快捷键了,不用自己去创建了,方便

  • 安装samba

1、安装和配置

//安装samba

sudo apt install samba samba-common

//创建共享目录

sudo mkdir /home/share

sudo chmod 777 /home/share

//修改samba配置

sudo vi/etc/samba/smb.conf

2.配置文件

注意,配置文件#注释要去掉

sudo vi /etc/samba/smb.conf

[mysmb] #共享时网络上显示的名称

path = /home/mysmbshare #共享路径

guest ok = no   #匿名访问

comment = smb share     #注释信息

available = yes         #vailable用来指定该共享资源是否可用

browseable = yes        #browseable用来指定该共享是否可以浏览

public    = yes         #public用来指定该共享是否允许guest账户访问

writeable = yes         #writable用来指定该共享路径是否可写

我的配置

[work]

path = /home/barry/work

guest ok = yes

comment = my work dir

available = yes

browseable = yes

public = yes

writeable = yes

create mask = 0755

directory mask = 0755

3、重启samba

sudo service smbd restart

或者

/etc/init.d/smbd restart

为用户barry设置密码

sudo smbpasswd -a barry

 4、在mac中打开Finder后command+K访问smb://ip,以guest登陆,输入密码即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值