Explore

分类 技术经验 下的文章

修改CentOS7的SSH端口

修改ssh配置

vi /etc/ssh/sshd_config

找到 #Port 22 取消该行的注释。改为想要使用的端口,如:Port 12306

重启服务

systemctl restart sshd

配置selinux

安装 semanage 工具

yum provides semanage
yum -y install policycoreutils-python

打开端口

semanage port -a -t ssh_port_t -p tcp 12306

查看当前 SELinux 允许的端口

semanage port -l | grep ssh

错误处理

当 SELINUX 配置为禁用状态时,使用 semanage 会报错提示无法读取 policy 文件:

SELinux:  Could not downgrade policy file /etc/selinux/targeted/policy/policy.30, searching for an older version.  
SELinux:  Could not open policy file <= /etc/selinux/targeted/policy/policy.30:  No such file or directory  
/sbin/load_policy:  Can't load policy:  No such file or directory
libsemanage.semanage_reload_policy: load_policy returned error code 2. (No such file or directory).  
FileNotFoundError: [Errno 2] No such file or directory 

启用 SELinux:

vi /etc/selinux/config

修改 SELINUX=permissive 以后重启服务器:

init 6

重启后查看 SELinux 状态:

sestatus

如果显示 disabled,执行:

load_policy -qi

检查配置:

semanage port -a -t ssh_port_t -p tcp 12306
semanage port -l | grep ssh

重启sshd服务:

systemctl restart sshd
阅读更多

CentOS7下安装MariaDB 10.2

说明

mariadb是mysql的一个开源分支。由原mysql的创始人Michael Widenius带领的团队主导着维护工作。相对于已被Oracle收购的mysql而言,mariadb不会有闭源和法律风险,同时又兼容现有那些旧的基于mysql开发的应用程序。业界巨头包括Google和阿里在内都先后迁移到了mariadb,因此适时了解学习它是非常有必要的。

安装依赖

yum install perl
yum install rsync
yum install lsof
yum install libaio
yum install galera
yum install perl-DBI

删除冲突库

rpm -qa | grep mariadb-libs
rpm -ev --nodeps mariadb-libs-5.5.56-2.el7.x86_64

下载rpm包

wget http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.10/yum/centos7-amd64/rpms/MariaDB-10.2.10-centos7-x86_64-server.rpm
wget http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.10/yum/centos7-amd64/rpms/MariaDB-10.2.10-centos7-x86_64-shared.rpm
wget http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.10/yum/centos7-amd64/rpms/MariaDB-10.2.10-centos7-x86_64-client.rpm
wget http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.10/yum/centos7-amd64/rpms/MariaDB-10.2.10-centos7-x86_64-common.rpm
wget http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.10/yum/centos7-amd64/rpms/MariaDB-10.2.10-centos7-x86_64-compat.rpm
wget http://mirrors.neusoft.edu.cn/mariadb//mariadb-10.2.10/yum/centos7-amd64/rpms/MariaDB-10.2.10-centos7-x86_64-devel.rpm

安装

rpm -ivh *.rpm

启动

service mysql start

设置root密码

先无密码登录

mysql -uroot

再设置root密码

set password for `root`@`localhost`=password('123456');

创建所需数据库

create database `devdb` default character set utf8 collate utf8_general_ci;

创建远程用户

create user `remote_user`@`%` identified by '987654';

给远程用户授权

根据不同的数据库单独授权:

grant all privileges on `devdb`.* to `remote_user`@`%`;

刷新权限

flush privileges;

设置表名不区分大小写

vi /etc/my.cnf.d/server.cnf

在[mysqld]段落下加入:

lower_case_table_names=1

然后重启服务:

service mysql restart
阅读更多

Spring Boot应用启停脚本参考

启动

#!/bin/bash
LOG_FILE=console.log
JAR_NAME=myapp.jar
if [ ! -f "$LOG_FILE" ]; then
    touch "$LOG_FILE"
fi
nohup java -Djava.net.preferIPv4Stack=true -server -Xmx1024m -Xms512m -XX:PermSize=128m -XX:MaxPermSize=256m -jar $JAR_NAME > $LOG_FILE &
tail -f $LOG_FILE

停止

#!/bin/bash
JAR_NAME=myapp.jar
PID=$(ps -ef | grep $JAR_NAME | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
    echo 服务已关闭
else
    echo 关闭服务中 $PID
    kill $PID
fi
阅读更多

Jackson自定义序列化输出

例如:学生类
public class Student{

private List<Boy> boys;
private List<Girl> girls;
//getter,setter 方法略

}
引用的对象定义:
public class Girl{

private Integer age;
private Double weight;
//getter,setter方法略

}
如果某些属性(如 age,weight 不需要输出),那么需要定义一个MixIn对象:
@JsonIgnoreProperties({"age", "weight"})
public class MixInGirl extends Girl{
}
通过注解忽略这两个字段。然后在输出时进行处理:
Student result = new Student();
//... 取值
ObjectMapper mapper = new ObjectMapper();

    try {            
        mapper.addMixIn(Girl.class, MixInGirl.class);
        System.out.println(mapper.writeValueAsString(result));
    } catch (JsonProcessingException e) {
        e.printStackTrace();
    }

这样得到的序列化结果中就不会包含 age 和 weight 字段了。

阅读更多

Intellij IDEA 的几处优化配置

Intellij IDEA 是一个非常强大和智能的IDE,但默认配置的一些参数不太符合人们的使用习惯(对于用惯了eclipse的人而言)。以下是我在使用过程中总结的几点优化项。

关闭拼写检查:
Editor>Inspections>Spelling,不勾选 Typo
1.png

用星号标识修改过的文件:
Editor>General>Editor Tabs,勾选 Mark modified tabs with asterisk
2.png

标识修改过文件所在的目录:
Version Control,勾选 Show directories with changed descendants
3.png

显示行号:
Editor>General>Appearance,勾选Show line numbers
4.png

让光标不随意定位:
Editor>General,不勾选 Allow placement of caret after end of line
5.png

取消自动保存:
Appearance & Behavior > System Settings,不勾选 Save files on frame deactivation
6.png

鼠标悬停自动显示javadoc(类似eclipse效果):
Edotor>General,勾选 Show quick doc on mouse move
7.png

代码提示不区分大小写:
Editor>General>Code Completion
修改 Case sensitive completion 选项改为 None。
8.png

关闭自动更新:
Appearance & Behavior>System Settings>Updates
取消 Automatically check updates 的勾选。
9.png

阅读更多