Decorative image frame

mysql log迁移

记录一次mysql log迁移经理

系统:Ubuntu18.04.6
mysql版本:mysql5.7

停止mysql服务

1
systemctl stop mysql.service

复制文件到新目录

1
2
3
sudo mkdir /data/log/mysql
sudo chown mysql:adm /data/log/mysql
sudo cp /var/log/mysql/* /data/log/mysql

修改配置文件/etc/mysql/mysql.conf.d/mysqld.cnf,找到log的相关的配置修改目录

1
2
3
log_error = /data/log/mysql/error.log
slow_query_log_file = /data/log/mysql/mysql-slow.log
log_bin = /var/log/mysql/mysql-bin.log

修改启动文件/etc/apparmor.d/usr.sbin.mysqld添加以下配置

1
2
3
4
/data/log/mysql.err rw,
/data/log/mysql.log rw,
/data/log/mysql/ r,
/data/log/mysql/** rw,

重启服务

1
2
systemctl restart apparmor
systemctl start mysql.service

springboot整合jasypt加密数据库配置

项目中会遇到数据库名称和密码需要加密防止泄露的需求,因此引入了jasypt。下面的例子是将jasypt的加密密钥写在了配置文件中,为了安全,实际引用时,需要将配置放到服务器的启动命令中,避免在代码中暴露密钥

1.引入maven依赖jasypt-spring-boot-starter

1
2
3
4
5
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.4</version>
</dependency>

2.启动类添加注解@EnableEncryptableProperties

1
2
3
4
5
6
7
8
9
10
11
import com.ulisesbocchio.jasyptspringboot.annotation.EnableEncryptableProperties;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@EnableEncryptableProperties
public class AdminMain {

public static void main(String[] args) {
SpringApplication.run(AdminMain.class, args);
}
}

阅读全文...

jar包运行参数配置

三种jar包启动时传参的方式

  1. jvm传值 -Dkey_name=value
    这种方式已 -D开头,放在jar包之前

    1
    java  -Ddatabasename=test  -jar  test.jar
  2. 给main函数传值 key_name=value

    1
    java  -jar  test.jar databasename=test

    治理要求参数放在jar包之后,main方法中可以接收参数

    1
    2
    3
    4
    5
    public static void main(String[] args) throws IOException {
    for(String arg : args){
    log.info("参数:" + arg);
    }
    }
  3. 覆盖yaml或properties 文件参数 –key_name=value

    1
    java -jar tes.jar --logName=log.txt

    这里要求参数放在jar包之后用--开头,程序中可以使用@Value注解获取参数值

    1
    2
    @Value("${logName}")
    private String logName; //输出:log.txt

mysql root用户增加超级权限,解决无法给新建用户配置权限问题

mysql root用户通过外网登录数据库后,想要添加用户分配权限,结果发现不行。但是在服务器上通过localhost登录后可以配置。

原因是新增的root@%没有超级权限。只有个root@localhost才有。

解决方法是,使用root@localhost账户为root@%添加超级权限。

在服务器上使用mysql -u root -p登录,然后执行以下命令

1
2
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;

这是通过mysql客户端工具,使用外网链接数据库就可以设置用户权限了

ubuntu18.4多版本php安装

安装php ppa源

1
2
3
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php

老版本的12.4之前的ubuntu用下面的命令

1
2
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php

更新源

1
2

sudo apt-get update

安装对应的版本

比如安装7.0

1
2
sudo apt-get install -y php7.0

ubuntu 18.04 Temporary failure in name resolution DNS解析问题,解决方法

在ubuntu18.04 配置环境,发现无法下载网络资源,但是用ip可以访问外网资源。问题应该是dns没有解析。
试了好多种方法无效,最后找到了解决方法,记录一下

修改/etc/systemd/resolved.conf将里面的dns注释去掉,配置上自己的dns就可以了

1
2
[Resolve]
DNS=114.114.114.114

注意:修改完成后,需要重启一下服务器

deepin双内核管理

如何手动安装双内核:

深度操作系统内核版本,会以一定周期进行更新,已经安装系统的用户,需要安装最新的内核版本,可通过在[终端]应用中输入命令行操作。

安装LTS内核

1
sudo apt install linux-image-deepin-amd64 linux-headers-deepin-amd64

安装stable内核

1
sudo apt install linux-image-deepin-stable-amd64 linux-headers-deepin-stable-amd64

查询当前系统已安装内核并获取完整包名:

1
dpkg -l | grep "linux-image\|linux-headers"

卸载其中一个内核

1
sudo apt purge linux-image-5.10.18-amd64-desktop linux-headers-5.10.18-amd64-desktop