以下是本人编程开发中的一些配置信息整理,好记性不如烂笔头,以资参考(后续还会更新…)
Java 相关环境配置项:
1、环境下载:
标题 | 链接地址 |
---|---|
JDK下载: | JDK7下载 JDK8下载 快速下载地址(国内镜像) |
Eclipse下载: | 最新版 其他版 |
Maven下载: | 下载地址 |
Spring 插件下载: | 下载地址 |
MySQL下载: | 下载地址 安装版下载 压缩版下载 |
MariaDB 下载: | 下载地址 |
2、环境配置:
JDK配置:
JAVA_HOME JDK的安装路径
CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
Path 追加 ;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
Maven配置:
M2_HOME maven的解压路径
Path 追加 ;%M2_HOME%\bin;
3、maven 仓库配置:
<!-- 本地地址配置 -->
<localRepository>D:/Program Files/apache-maven-3.5.4/repo</localRepository>
<!-- 中央仓库地址配置 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
4、MySQL 配置项:
服务配置:
1、环境变量
path: MySQL压缩包解压路径 + bin
2、修改配置文件 my-default.ini
basedir = MySQL压缩包解压路径
datadir = MySQL压缩包解压路径/data
3、与bin目录同级创建data文件夹
4、进入命令窗口,访问到mysql 的bin目录下
初始化data文件夹
①初始化出没有密码的账号
mysqld --initialize-insecure --user=mysql
注册mysql
mysqld --install
5、启动服务:net start mysql(若有问题,mysqld -remove 卸载服务)
6、mysql -u root -p 无密码访问
若登录成功,有 Welcome to the MySQL monitor.等提示
7、改密码:update user set password=password("root") where user="root";
如果出问题:使用如下命令修改密码:
update mysql.user set authentication_string=password('root') where user='root' and Host ='localhost';
flush privileges; 必须刷新权限
8、配置远程ip访问
mysql -u root -proot 登录,若登录成功,有 Welcome to the MySQL monitor.等提示时:
输入:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
GRANT ALL ON *.* TO root@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
flush privileges
flush privileges; 必须刷新权限
9、设置全局的时区
set global time_zone='+8:00';
flush privileges; //必须刷新权限
注:配置多台MySQL服务
其他步骤基本一致,只有注册服务的时候稍有不同,具体如下:
1、注册服务:
mysqld install MySQL8.0 --defaults-file="D:\Program Files\mysql-8.0.19-winx64\my.ini"
这里的**MySQL8.0** 就是服务名称,注意不能中间带空格,好像带空格不生效 ( ̄(∞) ̄)
2、打开注册表(regedit)找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL8.0
修改 ImagePath 属性 为
"D:\Program Files\mysql-8.0.19-winx64\bin\mysqld" MySQL8.0
(多个MySQL的服务文件地址) (配置多个服务的服务名称)
界面配置
安装 navicat.exe 记住路径
双击 PatchNavicat.exe 找到navicat.exe 安装路径中的 navicat.exe
Navicat 下载地址 (12.X版本):http://download.navicat.com.cn/download/navicat120_premium_cs_x64.exe
如果实在 CentOS 上面用 yum 安装的 mysql ,好像 默认 Linux 上面的mysql 对表的大小写敏感,需添加如下配置
编辑 nano /etc/my.cnf 该目录下的 配置文件 ,添加如下配置:
#配置表名大小写不敏感
lower_case_table_names=1
重启 mysql 服务
systemctl restart mysql
5、MariaDB 解压版安装
# 请以管理员身份运行cmd控制台,该命令会自定创建MariaDB 服务,同时配置端口、密码、允许远程连接访问
mysql_install_db.exe --service=MariaDB --port=3307 --password=root --allow-remote-root-access
# 卸载服务
mysqld --remove MariaDB
# 启动服务
net start MariaDB
MariaDB 初始化相关命令参数
参数 | 描述 |
---|---|
-?, --help | 显示帮助信息并退出 |
-d, --datadir=name | 新数据库的数据目录(不输入默认当前解压路径下) |
-S, --service=name | Windows服务的名称 |
-p, --password=name | root用户密码 |
-P, --port=# | mysqld 端口(指定服务端口) |
-W, --socket=name | 命名管道名称 |
-D, --default-user | 创建默认用户 |
-R, --allow-remote-root-access | 允许用户以root身份从网络进行远程访问 |
-N, --skip-networking | 不要使用TCP连接,而是使用管道 |
-i, --innodb-page-size | 自MariaDB 10.2.5起,Innodb页面大小 |
运维相关
配置阿里 epel源
wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo
安装 epel仓库
yum install epel-release
安装 Nginx
## 编辑 Nginx 源 这里设置为中科大的镜像repo
nano /etc/yum.repos.d/nginx.repo
[nginx-mainline]
name=nginx mainline repo
baseurl=http://mirrors.ustc.edu.cn/nginx/mainline/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
module_hotfixes=true
### 安装 Nginx
yum install nginx -y
### 查看 nginx 版本
nginx -v
### 启动Nginx
systemctl start nginx
### 配置Nginx开机启动
systemctl enable nginx
### 查看Nginx 安装位置
whereis nginx
### 检查Nginx 配置是否正确
nginx -t
### nginx修改配置后重载
nginx -s reload
Nginx 配置
user nginx;
worker_processes 1; # nginx处理并发的值 值越大,处理的并发越多(配置 nginx worker个数,和cpu个数相同比较适宜)
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024; // 最大的连接数
# 发送一个请求,占用 2个(静态资源)或者 4个(web服务)连接数
# 普通静态资源的最大并发数是 : worker_connections * worker_processes / 2
# 如果是 http作为 反向代理来说,最大并发数是 worker_connections * worker_processes / 4
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
# 这里可以直接不使用下面的配置,直接用的是该配置路径下的配置
#include /etc/nginx/conf.d/*.conf;
# 配置负载均衡
upstream tomcats {
# 负载分配策略
#① 轮询 默认配置,不做任何处理,服务器宕机,自动剔除
# eg:
# server ip
#② weight 权重策略,默认是1,值越高,被分配客户端请求越多
# eg:
# server ip weight=10;
#③ ip_hash 每个请求安访问的ip的hash结果分配,每个访客固定访问一个后端服务器,可以结果session问题
# eg:
# ip_hash
# server ip;
#④ fair 按后端服务器的响应时间分配请求,响应时间段的优先分配(放在server列表后)
# eg:
# server ip;
# fair
server 127.0.0.1:8888 weight=10;
server 192.168.65.129:8888 weight=10;
server 192.168.65.130:8888 weight=10;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
#root /usr/share/nginx/html;
#index index.html index.htm;
# 配置反向代理的 地址
#proxy_pass http://127.0.0.1:8631;
proxy_pass http://tomcats;
proxy_redirect default;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# 使用www 地址访问某些系统路径上的静态资源
#location /www/ {
#指定在系统上允许访问的资源路径
#root /usr/share/nginx/html;
#index index.html index.htm;
#autoindex on; #列出文件列表
#}
#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 /usr/share/nginx/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;
#}
}
}
JAVA 相关
项目启动
nohup java -jar jar包名称 >记录日志 2>&1 &
监听 记录日志
tail -f 文件名
配置 Spring Boot jar以服务的方式运行
-
创建shell脚本
# 这里使用的的nano工具编写文本,可以使用 vim编辑器,看各人爱好 nano spring-boot-admin.sh
-
编写shell脚本内容
#!/bin/bash #这里可替换为你自己的执行程序,其他代码无需更改 这里的包名为 spring-boot-admin-1.0.0.jar APP_NAME=/opt/web/spring-boot-admin-1.0.0.jar JVM="-server -Xms512m -Xmx512m -XX:PermSize=64M -XX:MaxNewSize=128m -XX:MaxPermSize=128m -Djava.awt.headless=true -XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled" # 配置jar包外部配置文件的路径 APPFILE_PATH="-Dspring.config.location=/opt/web/config/application.properties" #使用说明,用来提示输入参数 usage() { echo "Usage: sh 执行脚本.sh [start|stop|restart|status]" exit 1 } #检查程序是否在运行 is_exist(){ pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' ` #如果不存在返回1,存在返回0 if [ -z "${pid}" ]; then return 1 else return 0 fi } #启动方法 start(){ is_exist if [ $? -eq "0" ]; then echo "${APP_NAME} is already running. pid=${pid} ." else nohup java $JVM -jar $APPFILE_PATH $APP_NAME > /dev/null 2>&1 & echo "${APP_NAME} start success" fi } #停止方法 stop(){ is_exist if [ $? -eq "0" ]; then kill -9 $pid else echo "${APP_NAME} is not running" fi } #输出运行状态 status(){ is_exist if [ $? -eq "0" ]; then echo "${APP_NAME} is running. Pid is ${pid}" else echo "${APP_NAME} is NOT running." fi } #重启 restart(){ stop start } #根据输入参数,选择执行对应方法,不输入则执行使用说明 case "$1" in "start") start ;; "stop") stop ;; "status") status ;; "restart") restart ;; *) usage ;; esac
-
启动运行
# 启动服务 sh spring-boot-admin.sh start # 停止服务 sh spring-boot-admin.sh stop # 查看服务 sh spring-boot-admin.sh status # 重启服务 sh spring-boot-admin.sh restart
JAVA 配置打包相关:
-
打成war包的时候排除某些文件夹
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.1.0</version> <configuration> <packagingExcludes>template\**,html\**,uploads\**,static\**</packagingExcludes> </configuration> </plugin>
-
待续。。。
Windows redis 安装
## redis 目录下 进入命令行输入以下命令
redis-server.exe --service-install redis.windows.conf --loglevel verbose
### 配置服务 启动
redis-server --service-start
其他
visual code 插件
Auto Close Tag 自动补全html标签
Auto Rename Tag——修改HTML标签时,自动修改匹配的标签
AutoFileName——自动补全文件路径提示
Babel ES6/ES7——ES6,ES7语法加亮检查插件
Chinese (Simplified) Language Pack for Visual Studio Code——为 VS Code 提供简体中文界面
ESLint——代码检查插件
vetur——Vue语法高亮
vscode-icons——为每个文件类型增加一个小图标,使文件目录更直观
Vue 2 Snippets——Vue2 片段补全工具
VueHelper——Vue2代码段(包括Vue2 api、vue-router2、vuex2)
Hbase 数据备份 还原
# test_table 表名
# /opt/hbase-data-back/test_table_back 文件存储路径
hbase org.apache.hadoop.hbase.mapreduce.Export test_table /opt/hbase-data-back/test_table_back
# 在Hadoop中查看导出的文件信息
hadoop fs -ls /opt/hbase-data-back/test_table_back
# 在Hadoop中删除导出的文件信息
hadoop fs -rmr /opt/hbase-data-back/test_table_back
#获取hdfs文件到系统
#将hdfs中的/opt/hbase-data-back/test_table_back,复制到系统的/opt/hbase-data-back/test_table_back中:
hadoop fs -get /opt/hbase-data-back/test_table_back /opt/hbase-data-back/test_table_back
##将备份文件添加到hdfs中
# localFile 本地路径
# hdfsFile Hadoop中的路径 hdfsFile 必须是已存在的路径
# 若不存在:hadoop dfs -mkdir /opt/hbase-data-back (只能一级一级的建目录。)
hadoop dfs -put localFile hdfsFile
#eg:
hadoop dfs -put /opt/hbase-data-back/test_table_back /opt/hbase-data-back
#导入hbase中
hbase org.apache.hadoop.hbase.mapreduce.Import test_table_back /opt/hbase-data-back/test_table_back
hbase org.apache.hadoop.hbase.mapreduce.Driver import test_table_back /opt/hbase-data-back/test_table_back
MySQL数据操作相关
###############创建视图##################
create view viewname
as
select * from tablename
###############视图转表##################
oracle、mysql :
create table tablename as select * from viewname
sqlserver:
select * into tablename from viewname
Phoenix 相关操作整理
# 建表
# 注,建表时表名、列名、列簇 若不加双引号,Phoenix默认设置为大写格式,若使用默认的大写,操作表时大小写都能识别
# (建议不加引号,方便在java中操作时直接写SQL语句操作,不然全部的表名、列名都需要对引号转义
# 如:upsert into \"user \"(\"id\",\"name\",\"passwd \") values('20','xuxiao','德国柏林')")
1、默认不分区
CREATE TABLE user (id varchar PRIMARY KEY,name varchar ,passwd varchar);
2、建立20个分区的表
CREATE TABLE user (id varchar PRIMARY KEY,name varchar ,passwd varchar) SALT_BUCKETS = 20;
3、建表并设置info列族
CREATE TABLE user (id varchar PRIMARY KEY,info.name varchar ,info.passwd varchar) SALT_BUCKETS = 20;
4、对表进行schema分组处理,帮助识别,如果进行schema分了组,之后的所有所有都需要带上组名
//新建一个test组的user表,schema组名test
CREATE TABLE test.user (id varchar PRIMARY KEY,name varchar ,passwd varchar);
5、建表并分区,压缩表
CREATE TABLE test.user (id varchar PRIMARY KEY,name varchar ,passwd varchar) COMPRESSION='GZ',SALT_BUCKETS=16
修改表结构
1、添加字段
ALTER TABLE user ADD age integer;
ALTER TABLE user ADD age integer, address varchar;
2、添加字段带info列族
ALTER TABLE user ADD info.age integer;
ALTER TABLE user ADD info.age integer, info.address varchar;
3、修改字段(先删除字段,再添加)
ALTER TABLE user DROP COLUMN age;
删除表信息
1、仅删除Phoenix中的索引映射表
DELETE from SYSTEM.CATALOG where TABLE_NAME = user;
2、Phoenix和hbase中都删除
drop table user;
***************************************************************
*******注:操作字符串类型数据时,最好使用单引号包裹*******************
***************************************************************
给表添加数据
upsert into user(id,name,password) values('001','张三','123456');
删除数据
DELETE FROM user;
DELETE FROM user WHERE ID= ‘001’;
DELETE FROM user WHERE NAME LIKE '张%';
查询数据(查询所有)
SELECT * FROM user;
查询数据(带条件查询所有)
********************************************************************
*******注:默认能通过 primary key 字段查询,若是别的字段,需要创建索引*******
********************************************************************
//当前的id是primary key字段
SELECT * FROM user where id = '001';
分页查询 (LIMIT 筛选出多少行,OFFSET 从第几行开始筛选)
SELECT * FROM user LIMIT 10;
SELECT * FROM user LIMIT 10 OFFSET 10;
创建索引(同样索引也可以进行schema分组)
//USER_NAME_INADEX 索引名称,最好全大写,测试时小写出错了☹
create index USER_NAME_INADEX on user (name);
//如果是带有列族的列
create index USER_NAME_INADEX on user (info.name);
//采取INCLUDE(index cover,即索引覆盖)的方式创建password的索引:
create index USER_PASSWORD_INADEX on user (password) INCLUDE(name);
多列索引
//若是新创建的
create index USER_NAME_PASSWORD_INADEX on user (name, password);
设置网页滤镜
body>* {
filter: grayscale(100%);
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
-webkit-filter: grayscale(1);
}
实现正则检测密码强度
这里实现匹配“大写字母,小写字母,数字,特殊字符”四项中的至少三项的正则表达式如下:
var reg = /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\\W_!@#$%^&*`~()-+=]+$)(?![0-9\\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\\W_!@#$%^&*`~()-+=]{6,30}$/;
reg.test("qwer123!@#") --- true
reg.test("qwer123") --- false
reg.test("QWERqwer123") --- true
reg.test("QWER123!@#") --- true
待续。。。