前言
原文链接://ubuntu-dev-environment-to-build/
最近公司的电脑由于不明原因老是奔溃,重装过两次,在家里也比较喜欢折腾系统,为了不用每次都度娘谷歌,记录下来,一条龙走过。博主是搞爪哇开发的,那么以下搭建针对的是爪哇环境开发
安装JDK以及配置环境变量
通过Apt安装
/how-to-install-java-on-ubuntu-18-04-bionic-beaver-linux
OpenJDK
JDK8:
sudo apt install openjdk-8-jdk
JDK9:
sudo apt install openjdk-9-jdk
JDK11:
sudo apt install openjdk-11-jdk
OracleJDK
sudo add-apt-repository ppa:webupd8team/java && sudo apt update
JDK8:
sudo apt install oracle-java8-set-default
JDK9:
sudo apt install oracle-java9-set-default
手动安装
安装JDK
安装之前当然是老规矩地下载jdk
:Oracle JDK官方下载
# 把jdk的文件移动到 /usr/local/ 目录下sudo mv ~/jdk*.tar.gz /usr/local/# 解压文件cd /usr/local/# sudo tar -zxvf jdk-8u101-linux-x64.tar.gz# 创建软链接sudo ln -s jdk1.8.0_101 jdk
如需更换jdk
,删除旧版本的软链接,重新创建软链接指向新版即可
sudo rm -rf jdksudo ln -s jdk* jdk
配置环境变量
放到/usr/local
里面的程序,建议使用系统变量。用户变量~/.profile
文件是用户的私有配置文件
~/.bashrc
是在bash里面使用的私有配置文件,优先级在.profile
文件之后系统变量
/etc/profile
文件是系统的公用配置文件
/etc/bash.bashrc
是bash
专用的配置文件,优先级在profile
文件之后系统变量的配置,不建议修改前面说到的两个文件,而是建议在/etc/profile.d/
目录下,创建一个.sh
结尾 的文件。
sudo vi /etc/profile.d/jdk.sh
环境变量的配置内容如下:
设置一个名为JAVA_HOME
的变量,并且使用export
命令导出为环境变量, 如果不使用export
,仅在当前shell
里面有效
export JAVA_HOME=/usr/local/jdk
PATH
不需要export
,因为早在其他的地方,已经export
过了!,\$JAVA_HOME
表示引用前面配置的JAVA_HOME
变量,分隔符一定是冒号,Windows是分号,最后再引用原来的PATH
的值
PATH=$JAVA_HOME/bin:$PATH
配置以后,可以重新登录让配置生效,也可以使用source
临时加载配置文件。使用source
命令加载的配置,仅在当前shell
有效,关闭以后失效。
source /etc/profile.d/jdk.sh
查看jdk
是否安装成功,一下两条命令成功则安装成功
java -versionjavac -version
安装Scala环境
更上面安装JDK类似
1、去官网下载最新地SDK
2、解压到/usr/local
目录,并创建软链接为scala
3、在/etc/profile.d
目录下创建scala.sh
,输入以下信息:
export SCALA_HOME=/usr/local/scalaPATH=$PATH:$SCALA_HOME/bin
4、查看是否安装成功
source /etc/profile.d/scala.shscala -version
安装IDE
Eclipse
直接在Eclipse官方网站下载相关版本Eclipse
解压
sudo tar zxvf eclipse-jee-mars-2-linux-gtk-x86_64.tar.gz -C ~/IDE
创建快捷方式
1. 在终端中执行如下命令
sudo gedit /usr/share/applications/eclipse.desktop
2. 粘贴并保存如下内容(注意更改相应的名字和目录)
[Desktop Entry] Name=Eclipse Mars.2 Type=Application Exec=/home/ybd/IDE/eclipse Terminal=false Icon=/home/ybd/IDE/icon.xpm Comment=Integrated Development Environment NoDisplay=false Categories=Development;IDE; Name[en]=Eclipse Mars.2
通用设置
window → preferences →
* 设置字体:general → appearance → color and font → basic → text font
* 编辑器背景颜色:general → editors → text editors → background color →RGB:85,123,208
,#C7EDCC
* 工作空间字符编码:general → workspace
* 作者签名:java → code style → code templates → types 签名快捷键:alt + shift + j
MyEclipse
MyEclipse安装请看:Ubuntu16.04下MyEclipse安装与破解
IntelliJ IDEA
之前听说过IDE[^1],都是大公司用的,并没有用过
日后再研究补上
官网:/idea/
新公司好多大牛,用的都是IDEA,于是乎“近墨者黑”,那么既然有机会跟大牛接触,我也开始真正意义上的学习IDEA了
安装
进过查阅,我选择官方的盒子下载:/toolbox/app/?fromMenu
优点是可以自动更新
激活
博主使用授权服务器,可以自己搭建,详情请看这里
部署Tomcat
若是服务器版切换root用户解压到/opt/
或者/usr/local/
下
直接运行tomcat目录下bin/start.sh
即可开启,前提是配置好JDK
桌面版个人使用就解压到/home/{user}
目录下就可以了
安装MySQL以及GUI工具
基于Docker安装
拉取镜像
docker pull mysql:5.7
运行实例
MYSQL=/home/ybd/data/docker/mysql && \docker run --name=mysql -p 3306:3306 \-v $MYSQL/data:/var/lib/mysql \-e MYSQL_ROOT_PASSWORD=root -d mysql \--character-set-server=utf8mb4 \--collation-server=utf8mb4_unicode_ci \--sql-mode=STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION \--lower-case-table-names=1
终端链接
sudo apt-get install mysql-client// 链接mysql -h 127.0.0.1 -P 3306 -u root -p
手动折腾安装
以mysql5.7
以上版本为例 –>mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz
必须要先安装依赖的libaio才能正常按照mysql
sudo apt-get updatesudo apt-get install libaio-dev
创建用户组以及用户
sudo groupadd mysqlsudo useradd -r -g mysql -s /bin/false mysql
尽量把mysql安装到/usr/local目录下面
cd /usr/localsudo cp /home/data/software/DataBase/mysql/mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz ./<-- 解压缩安装包 -->sudo tar zxvf mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz<-- 创建软连接 -->sudo ln -s mysql-5.7.10-linux-glibc2.5-x86_64 mysql
创建必须的目录和进行授权
cd mysqlsudo mkdir mysql-filessudo chmod 770 mysql-filessudo chown -R mysql .sudo chgrp -R mysql .
执行安装脚本
sudo bin/mysqld --initialize --user=mysql sudo bin/mysql_ssl_rsa_setup
在初始化的时候,一定要仔细看屏幕,最后大概有一行:[Note] A temporary password is generated for root@localhost: kklNBwkei1.t
注意这是root
的临时密码,记录下来以便后面修改密码!
重新对一些主要的目录进行授权,确保安全性
sudo chown -R root .sudo chown -R mysql data mysql-files
从默认的模板创建配置文件,需要在文件中增加 skip-grant-tables ,以便启动mysql以后修改root用户的密码
sudo cp support-files/my-f ./f
测试启动,修改密码
# 后台启动mysqlsudo bin/mysqld_safe --user=mysql & # 启动./bin/mysql -u root -p
方式一
因为前面修改了f
文件,增加了skip-grant-tables
参数,所以不需要用户名即可登陆
进去后立即修改root
用户的密码,密码的字段是authentication_string
update mysql.user set authentication_string=password('root') where user='root';
修改密码后,再把f
里面的skip-grant-tables
去掉
方式二
修改密码也可以使用安装到时候提示到随机密码进行登录,然后使用下面到命令修改密码。
建议用下面的方式设置数据库的密码
alter user user() identified by 'root';
复制启动脚本到合适的位置
sudo cp support-files/mysql.server /etc/init.d/mysql
(Optional)增加自动启动
sudo update-rc.d -f mysql defaults
增加mysql
命令的路径到PATH
环境变量
sudo touch /etc/profile.d/mysql.shsudo chmod 777 /etc/profile.d/mysql.shsudo echo "PATH=/usr/local/mysql/bin:\$PATH" > /etc/profile.d/mysql.shsudo chmod 644 /etc/profile.d/mysql.sh
到此,mysql的安装基本完成
修复乱码以及忽略大小写,找到MySQL文件里的f
在末尾添加
lower_case_table_names=1character_set_server=utf8
查看以及修改MySQL字符编码
查看
mysql> show variables like 'collation_%';mysql> show variables like 'character_set_%';
修改
mysql> set character_set_client=utf8;Query OK, 0 rows affected (0.00 sec)mysql> set character_set_connection=utf8;Query OK, 0 rows affected (0.00 sec)mysql> set character_set_database=utf8;Query OK, 0 rows affected (0.00 sec)mysql> set character_set_results=utf8;Query OK, 0 rows affected (0.00 sec)mysql> set character_set_server=utf8;Query OK, 0 rows affected (0.00 sec)mysql> set character_set_system=utf8;Query OK, 0 rows affected (0.01 sec)mysql> set collation_connection=utf8_general_ci;Query OK, 0 rows affected (0.01 sec)mysql> set collation_database=utf8mb4_general_ci;Query OK, 0 rows affected (0.01 sec)mysql> set collation_server=utf8mb4_general_ci;Query OK, 0 rows affected (0.01 sec)
如果登录mysql出现以下错误
则可能配置未加载或服务未启动,请重启系统,然后启动mysql服务
sudo service mysql start
结束mysql
服务
sudo service mysql stop
开启远程链接
链接mysql后:
use mysql// 下面两个root分别是帐号密码GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;// 刷新特权flush privileges;// 查看修改是否成功select host,user from user;
Mysql GUI
传统终端客户端
sudo apt-get install mysql-client// 链接mysql -h 127.0.0.1 -P 3306 -u root -p
智能补全命令客户端
这个一个智能补全并且高亮语法的终端客户端mycli
安装:
sudo apt install mycli
使用:
$ mycli --helpUsage: mycli [OPTIONS] [DATABASE]A MySQL terminal client with auto-completion and syntax highlighting.Examples:- mycli my_database - mycli -u my_user -h my_database - mycli mysql://my_user@:3306/my_databaseOptions:-h, --host TEXTHost address of the database. -P, --port INTEGER Port number to use for connection. Honors $MYSQL_TCP_PORT.-u, --user TEXTUser name to connect to the database. -S, --socket TEXT The socket file to use for connection. -p, --password TEXT Password to connect to the database. --pass TEXT Password to connect to the database. --ssl-ca PATH CA file in PEM format. --ssl-capath TEXT CA directory. --ssl-cert PATHX509 cert in PEM format. --ssl-key PATHX509 key in PEM format. --ssl-cipher TEXT SSL cipher to use. --ssl-verify-server-certVerify server's "Common Name" in its cert against hostname used when connecting. Thisoption is disabled by default.-v, --version Output mycli's version. -D, --database TEXT Database to use. -R, --prompt TEXT Prompt format (Default: "\t \u@\h:\d> "). -l, --logfile FILENAME Log every query and its results to a file. --defaults-group-suffix TEXT Read MySQL config groups with the specified suffix.--defaults-file PATHOnly read MySQL options from the given file. --myclirc PATHLocation of myclirc file. --auto-vertical-output Automatically switch to vertical output mode if the result is wider than the terminalwidth.-t, --table Display batch output in table format. --csvDisplay batch output in CSV format. --warn / --no-warn Warn before running a destructive query. --local-infile BOOLEAN Enable/disable LOAD DATA LOCAL INFILE. --login-path TEXT Read this path from the login file. -e, --execute TEXT Execute command and quit. --help Show this message and exit.
Navicat Premium
破解
到官网下载对应系统版本,这里选择linux版本,并解压
到Github下载注册机,并解压
CHS - > Navicat简体中文版。
CHT - > Navicat繁体中文版。
ENG - > Navicat英文版
安装wine
sudo add-apt-repository ppa:ubuntu-wine/ppasudo apt-get updatesudo apt-get install wine1.8
进入注册机解压目录,在此目录下打开命令窗口输入
wine navicat-patcher.exe <navicat.exe path>
<navicat.exe path>
就是navicat.exe
的路径,最好是完整的。
可能会出现N个error日志信息不用鸟他 能正常success就行
之后在当前目录下会生成对应的私钥文件RegPrivateKey.pem
接着再用navicat-keygen.exe
生成注册码,使用命令
wine navicat-keygen.exe RegPrivateKey.pem
先填名字和组织名称,之后会生成一个序列号,并要求填入请求码。
打开navicat,然后断网
在注册界面填入序列号,然后激活。这时会提示要手动激活,ok就选这个
接下来会有请求码,复制然后贴入控制台,就可以得到注册码了。
创建快捷方式
cd /usr/share/applications/sudo touch navicat.desktopsudo vi navicat.desktop
加入以下内容
[Desktop Entry]Encoding=UTF-8Name=NavicatComment=The Smarter Way to manage dadabaseExec=/bin/sh "/home/ybd/Data/soft/application/navicat112_mysql_en_x64/start_navicat"Icon=/home/ybd/Data/soft/application/navicat112_mysql_en_x64/Navicat/navicat.pngCategories=Application;Database;MySQL;navicatVersion=1.0Type=ApplicationTerminal=0
参考:/thread-705020-1-1.html
后台运行
nohup /home/ybd/data/application/navicat/navicat120_premium_en_x64/start_navicat > /dev/null 2>&1 &
安装Redis
安装
终端执行:
sudo apt-get updatesudo apt-get install redis-server
启动
redis-server
查看是否启动成功
redis-cli
HelloWorld
set k1 hellowordget k1
配置相关
/etc/redis
:存放redis配置文件
/var/redis/端口号
:存放redis的持久化文件
通过下面的命令停止/启动/重启redis:
/etc/init.d/redis-server stop/etc/init.d/redis-server start/etc/init.d/redis-server restart
如果是通过源码安装的redis,则可以通过redis的客户端程序redis-cli
的shutdown
命令来重启redis
redis-cli -h 127.0.0.1 -p 6379 shutdown
如果上述方式都没有成功停止redis,则可以使用终极武器kill -9
开启远程访问
找到redis.conf
文件,一般在/etc
下面:
➜ ~ sudo find /etc -name redis.conf/etc/redis/redis.conf➜ ~ sudo gedit /etc/redis/redis.conf
找到bind 127.0.0.1
注释掉
注释掉本机,局域网内的所有计算机都能访问。
band localhost
只能本机访问,局域网内计算机不能访问。
bind 局域网IP
只能局域网内IP的机器访问, 本地localhost都无法访问。
博主选择将bind 127.0.0.1
改成了bind 0.0.0.0
开启发布订阅监听
还是修改redis.conf
文件,找到notify-keyspace-events ""
,修改为notify-keyspace-events Ex
或者notify-keyspace-events AKE
,然后重启。
附加1:基于Docker
拉取镜像:
docker pull redis:latest
运行实例:
REDIS=/home/ybd/data/docker/redis && docker run -p 6379:6379 --restart=always -v $REDIS/redis.conf:/usr/local/etc/redis/redis.conf -v $REDIS/data:/data --name redis -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
安装链接工具:
sudo apt-get install redis-tools// 链接redis-cli
附加2:Redis常用命令
连接操作命令
quit
:关闭连接(connection)auth
:简单密码认证help cmd
: 查看cmd帮助,例如:help quit持久化
save
:将数据同步保存到磁盘bgsave
:将数据异步保存到磁盘lastsave
:返回上次成功将数据保存到磁盘的Unix时戳shutdown
:将数据同步保存到磁盘,然后关闭服务远程服务控制
info
:提供服务器的信息和统计monitor
:实时转储收到的请求slaveof
:改变复制策略设置config
:在运行时配置Redis服务器对key操作的命令
exists(key)
:确认一个key是否存在del(key)
:删除一个keytype(key)
:返回值的类型keys(pattern)
:返回满足给定pattern的所有keyrandomkey
:随机返回key空间的一个keyrename(oldname, newname)
:重命名keydbsize
:返回当前数据库中key的数目expire
:设定一个key的活动时间(s)ttl
:获得一个key的活动时间select(index)
:按索引查询move(key, dbindex)
:移动当前数据库中的key到dbindex数据库flushdb
:删除当前选择数据库中的所有keyflushall
:删除所有数据库中的所有keyString
set(key, value)
:给数据库中名称为key的string赋予值valueget(key)
:返回数据库中名称为key的string的valuegetset(key, value)
:给名称为key的string赋予上一次的valuemget(key1, key2,…, key N)
:返回库中多个string的valuesetnx(key, value)
:添加string,名称为key,值为valuesetex(key, time, value)
:向库中添加string,设定过期时间timemset(key N, value N)
:批量设置多个string的值msetnx(key N, value N)
:如果所有名称为key i的string都不存在incr(key)
:名称为key的string增1操作incrby(key, integer)
:名称为key的string增加integerdecr(key)
:名称为key的string减1操作decrby(key, integer)
:名称为key的string减少integerappend(key, value)
:名称为key的string的值附加valuesubstr(key, start, end)
:返回名称为key的string的value的子串List
rpush(key, value)
:在名称为key的list尾添加一个值为value的元素lpush(key, value)
:在名称为key的list头添加一个值为value的 元素llen(key)
:返回名称为key的list的长度lrange(key, start, end)
:返回名称为key的list中start至end之间的元素ltrim(key, start, end)
:截取名称为key的listlindex(key, index)
:返回名称为key的list中index位置的元素lset(key, index, value)
:给名称为key的list中index位置的元素赋值lrem(key, count, value)
:删除count个key的list中值为value的元素lpop(key)
:返回并删除名称为key的list中的首元素rpop(key)
:返回并删除名称为key的list中的尾元素blpop(key1, key2,… key N, timeout)
:lpop命令的block版本。brpop(key1, key2,… key N, timeout)
:rpop的block版本。rpoplpush(srckey, dstkey)
:返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部Set
sadd(key, member)
:向名称为key的set中添加元素membersrem(key, member)
:删除名称为key的set中的元素memberspop(key)
:随机返回并删除名称为key的set中一个元素smove(srckey, dstkey, member)
:移到集合元素scard(key)
:返回名称为key的set的基数sismember(key, member)
:member是否是名称为key的set的元素sinter(key1, key2,…key N)
:求交集sinterstore(dstkey, (keys))
:求交集并将交集保存到dstkey的集合sunion(key1, (keys))
:求并集sunionstore(dstkey, (keys))
:求并集并将并集保存到dstkey的集合sdiff(key1, (keys))
:求差集sdiffstore(dstkey, (keys))
:求差集并将差集保存到dstkey的集合smembers(key)
:返回名称为key的set的所有元素srandmember(key)
:随机返回名称为key的set的一个元素Hash
hset(key, field, value)
:向名称为key的hash中添加元素fieldhget(key, field)
:返回名称为key的hash中field对应的valuehmget(key, (fields))
:返回名称为key的hash中field i对应的valuehmset(key, (fields))
:向名称为key的hash中添加元素fieldhincrby(key, field, integer)
:将名称为key的hash中field的value增加integerhexists(key, field)
:名称为key的hash中是否存在键为field的域hdel(key, field)
:删除名称为key的hash中键为field的域hlen(key)
:返回名称为key的hash中元素个数hkeys(key)
:返回名称为key的hash中所有键hvals(key)
:返回名称为key的hash中所有键对应的valuehgetall(key)
:返回名称为key的hash中所有的键(field)及其对应的value附加3:慢查询查看
Redis 通过
slowlog-log-slower-than
和slowlog-max-len
分别配置慢查询的阈值,以及慢查询记录的日志长度。slowlog-log-slower-than
默认值 10*1000微秒,当命令执行时间查过设定时,那么将会被记录在慢查询日志中。如果slowlog-log-slower-than=0
会记录所有的命令,slowlog-log-slower-than<0
对于任何命令都不会进行记录。
参数设定:
config set slowlog-log-slower-than 20000config set slowlog-max-len 1000config rewrite
如果要 Redis 将配置持久化到本地配置文件,需要执行
config rewrite
命令.
获取慢查询日志:
slowlog get [n] // n 表示返回的日志记录条数
每个慢查询日志有 4 个属性组成,分别是慢查询日志的标识 id、发生时间戳、命令耗时、执行命令和参数,慢查询列表如下:
127.0.0.1:6378> slowlog get1) 1) (integer) 0 //标识 id2) (integer) 1501750261//时间戳3) (integer) 19 // 命令耗时4) 1) "config" // 执行命令2) "set"3) "slowlog-log-slower-than"4) "0"127.0.0.1:6378>
获取慢查询日志列表当前的长度:
127.0.0.1:6378> slowlog len(integer) 2127.0.0.1:6378>
慢查询最佳实践
slowlog-max-len 配置建议:线上建议调大慢查询列表,记录慢查询时 Redis 会对长命令做截断操作,并不会占用大量内存。增大慢查询列表可以减缓慢查询被剔除的可能,例如线上可设置为 1000 以上。slowlog-log-slower-than 配置建议:默认值超过 10 毫秒判定为慢查询,需要根据 Redis 并发量调整该值。由于 Redis 采用单线程响应命令,对于高流量的场景,如果命令执行时间在 1 毫秒以上,那么 Redis 最多可支撑 OPS 不到 1000。因此对于高 OPS (operation per second)场景的 Redis 建议设置为 1 毫秒。慢查询只记录命令执行时间,并不包括命令排队和网络传输时间。因此客户端执行命
令的时间会大于命令实际执行时间。因为命令执行排队机制,慢查询会导致其他命令级联阻塞,因此当客户端出现请求超时,需要检查该时间点是否有对应的慢查询,从
而分析出是否为慢查询导致的命令级联阻塞。由于慢查询日志是一个先进先出的队列,也就是说如果慢查询比较多的情况下,可能
会丢失部分慢查询命令,为了防止这种情况发生,可以定期执行 slow get 命令将慢查询日志持久化到其他存储中(例如 MySQL),然后可以制作可视化界面进行查询。
安装Maven
下载
官网下载或者点击镜像获取
配置
1、下载解压到自己的指定的目录后,将命令放到/bin
下:
sudo ln -s /自定义目录/apache-maven-3.3.9/bin/mvn /bin/mvn
2、添加环境变量
老规矩,在/etc/profile.d
下创建一个maven.sh
的文件:
sudo touch /etc/profile.d/maven.shsudo vi /etc/profile.d/maven.sh
输入以下内容:
export M2_HOME=/自定义目录/apache-maven-3.3.9export PATH=${M2_HOME}/bin:$PATH
然后source
一下:
source /etc/profile.d/maven.sh
查看是否配置成功:
mvn -v
输入内容如下:
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; -11-11T00:41:47+08:00)Maven home: /home/ybd/Data/application/maven/apache-maven-3.3.9Java version: 1.8.0_65, vendor: Oracle CorporationJava home: /usr/local/jdk1.8.0_65/jreDefault locale: zh_CN, platform encoding: UTF-8OS name: "linux", version: "4.4.0-67-generic", arch: "amd64", family: "unix"
淘宝镜像
<mirrors><mirror><id>alimaven</id><name>aliyun maven</name><url>/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf> </mirror></mirrors>
MongoDB
安装
sudo apt-key adv --keyserver hkp://:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6#下面命令针对ubuntu16.04版本,在其他ubuntu版本系统请查看MongoDB官网echo "deb [ arch=amd64,arm64 ] /apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.listsudo apt-get updatesudo apt-get install -y mongodb-org
安装完成后查看版本:
mongo -version
启动、重新启动和关闭mongodb命令:
sudo service mongod startsudo service mongod stopsudo service mongod restart
查看是否启动成功:
sudo cat /var/log/mongodb/mongod.log
在mongod.log
日志中若出现如下信息,说明启动成功:
[initandlisten] waiting for connections on port 27017
MongoDB 卸载
删除 mongodb 包
sudo apt-get purge mongodb-org*
删除 MongoDB 数据库和日志文件
sudo rm -r /var/log/mongodbsudo rm -r /var/lib/mongodb
MongoDB 使用
shell命令模式
输入mongo
进入shell命令模式,默认连接的数据库是test数据库,命令如下:
➜ ~ mongo
常用操作命令:
show dbs
:显示数据库列表
show collections
:显示当前数据库中的集合(类似关系数据库中的表table)
show users
:显示所有用户
use yourDB
:切换当前数据库至yourDB
db.help()
:显示数据库操作命令
db.yourCollection.help()
:显示集合操作命令,yourCollection是集合名
官方文档:/master/tutorial/install-mongodb-on-ubuntu/
GUI客户端
Robomongo
RabbitMQ
选择Docker安装。。。不折腾了。。
docker pull rabbitmq:3-managementdocker run -d --name rabbitmq -p 5673:5672 -p 15673:15672 --restart=always rabbitmq:3-management
(注意版本,是management
)
浏览器打开localhost:15673
,默认帐号密码都是guest
集群:/p/624871c646b9
Kafka&Zookeeper集群
docker-compose.yml
:
version: '3'services:kafka1:image: wurstmeister/kafka:1.0.0depends_on:- zoo1- zoo2- zoo3 ports:- "9092:9092" environment:KAFKA_LOG_DIRS: /kafkaKAFKA_BROKER_ID: 1KAFKA_CREATE_TOPICS: test:6:1KAFKA_ADVERTISED_HOST_NAME: 192.168.6.113KAFKA_ADVERTISED_PORT: 9092KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181kafka2:image: wurstmeister/kafka:1.0.0depends_on:- zoo1- zoo2- zoo3 ports:- "9093:9092" environment:KAFKA_LOG_DIRS: /kafkaKAFKA_BROKER_ID: 2KAFKA_ADVERTISED_HOST_NAME: 192.168.6.113KAFKA_ADVERTISED_PORT: 9093KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181kafka3:image: wurstmeister/kafka:1.0.0depends_on:- zoo1- zoo2- zoo3 ports:- "9094:9092" environment:KAFKA_LOG_DIRS: /kafkaKAFKA_BROKER_ID: 3KAFKA_ADVERTISED_HOST_NAME: 192.168.6.113KAFKA_ADVERTISED_PORT: 9094KAFKA_ZOOKEEPER_CONNECT: zoo1:2181,zoo2:2181,zoo3:2181zoo1:image: zookeeper:latestenvironment:ZOO_MY_ID: 1SERVERS: zoo1,zoo2,zoo3ports:- "2181:2181"- "2888"- "3888"zoo2:image: zookeeper:latestenvironment:ZOO_MY_ID: 2SERVERS: zoo1,zoo2,zoo3ports:- "2182:2181"- "2888"- "3888"zoo3:image: zookeeper:latestenvironment:ZOO_MY_ID: 3SERVERS: zoo1,zoo2,zoo3ports:- "2183:2181"- "2888"- "3888"
启动:
docker-compose up -d
测试:
#创建主题docker exec -it ${CONTAINER_ID} /opt/kafka/bin/kafka-topics.sh --create --zookeeper zoo1:2181 --replication-factor 1 --partitions 1 --topic test#查看topic列表docker exec -it ${CONTAINER_ID} /opt/kafka/bin/kafka-topics.sh --list --zookeeper zoo1:2181#生产者docker exec -it ${CONTAINER_ID} /opt/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test#消费者docker exec -it ${CONTAINER_ID} /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
搭建ngrok配置
ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。可以被使用来进行微信借口的本地调试。在ngrok被墙之后,我们需要通过ngrok开源的源码自行搭建ngrok服务。
参考地址:Ubuntu下配置安装ngrok
搞了一上午,服务运行起来了,客户端也运行起来了,浏览器就是访问不到!!
不知道是不是因为个人电脑没有域名所以才访问不到,日后再深究。
无奈,还好互联网开源精神无处不在,某大神搭建的ngrok:
/
客户端和教程都在里面哦。
Update:Ngrok已搭建成功~ ,记录于self-hosted-build-ngrok-server