编程 整理 (对编程上面的一些知识整理,好记性不如烂笔头)

以下是本人编程开发中的一些配置信息整理,好记性不如烂笔头,以资参考(后续还会更新…)

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=nameWindows服务的名称
-p, --password=nameroot用户密码
-P, --port=#mysqld 端口(指定服务端口)
-W, --socket=name命名管道名称
-D, --default-user创建默认用户
-R, --allow-remote-root-access允许用户以root身份从网络进行远程访问
-N, --skip-networking不要使用TCP连接,而是使用管道
-i, --innodb-page-sizeMariaDB 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

待续。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值