Linux运维

软件清单

Mariadb 10.3.17-MariaDB MariaDB Server
Redis redis-3.2.12-2.el7.x86_64.rpm
Nacos nacos-1.4.2-1.el7.x86_64.rpm
Nginx nginx-1.20.1-1.el7.ngx.x86_64.rpm

RPM打包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
一. 安装rpm打包软件
    yum install -y rpm-build rpmdevtools
二. rpm包制作安装
1.进入当前用户目录
cd ~
2.创建文件夹
rpmdev-setuptree
3.进入rpmbuild目录
cd rpmbuild
4.将tar.gz文件放入SOURCES文件夹中
5.编写spec文件
vim just-assembly.space
6.执行命令制作rpm包
rpmbuild -ba just-assembly.spec
7.安装rpm包
rpm -ivh /root/rpmbuild/RPMS/x86_64/just_assembly-3.1.7-1.el7.x86_64.rpm
8.查看安装的软件状态
rpm -qi just_assembly-3.1.7-1.el7.x86_64
9.查看安装的软件路径
rpm -ql just_assembly-3.1.7-1.el7.x86_64
10.卸载
rpm -e just_assembly-3.1.7-1.el7.x86_64
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
name:           just_assembly
Version: 3.1.7
Release: 1%{?dist}
Summary: Calculate sin and cos value

Group: System Environment/Daemons
License: GPL
Vendor: MySelf.com
Source0: just_assembly-3.1.7.tar.gz
AutoReqProv: no

%description

%prep
%setup -n just-assembly
%define debug_package %{nil}
%define __jar_repack 0

%build

%install
#%define _unpackaged_files_terminate_build 0
rm -rf %{buildroot}/opt/just-assembly
mkdir -p %{buildroot}/opt/just-assembly
cp -rf * %{buildroot}/opt/just-assembly

%files

%doc
/opt/just-assembly/*


%post

注:%setup -n just-assembly 的包名要和/root/rpmbuild/BUILD/just-assembly/路径相同

达梦8

不能同时包含聚集KEY和大字段

1
2
3
4
5
问题原因:达梦数据库建表时默认将主键设置为聚集索引,
而表创建成功后,再向表增加大字段类型就会报错。
​# 1.关闭默认主键指定CLUSTER数据库参数,动态参数
  sp_set_para_value(1,'PK_WITH_CLUSTER',0);
# 2.重启数据库实例,表重建

MariaDB运维

忘记密码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1.vim /etc/my.conf.d/mariadb.cnf

编辑配置文件,在[mysqld]下插入下句并保存

skip-grant-tables

2.systemctl restart mariadb.service

MariaDB [(none)]> use mysql;

MariaDB [(none)]> update user set password=password("123456") where user="root";

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> quit

3.vim /etc/my.conf.d/mariadb.cnf 去掉skip-grant-tables并保存

4.systemctl restart mariadb.service

5.mysql -uroot -p123456

创建数据库

1
2
3
CREATE DATABASE testdb
CHARACTER SET = 'utf8'
COLLATE = 'utf8_general_ci';

source导入很慢

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1. 设置参数
set sql_log_bin=off;# 关闭二进制日志
set autocommit=0;# 关闭事务自动提交

2. 使用数据库
use 数据库名;

3. 开启事务
start transaction;

4. 导入sql
source 文件.sql;

5. 手动提交事务
commit;

6. 改回配置
set sql_log_bin=on;
set autocommit=1;

忽略大小写敏感

1
2
3
4
5
6
7
8
9
10
SHOW GLOBAL VARIABLES LIKE 'lower_case_table_names';
如果是 0 那就是大小写敏感,如果是 1 就是忽略大小写区别。

1. 停止 MariaDB/MySQL 服务:systemctl stop mariadb

2. 编辑配置文件:/etc/my.conf.d/mariadb.cnf,找到 [mysqld],如果没有就添加一个
[mysqld]
lower_case_table_names=1

3.启动 MariaDB/MySQL 服务:systemctl start mariadb
1
2
3
4
5
6
7
8
9
10
1. 查看数据库大小写配置
    show variables like '%lower%';
2. 使用root权限登录,修改配置文件 /etc/my.cnf
    需要注意的是配置文件的位置不一定就是这个,
    在使用docker搭建环境的时候MySQL的默认配置文件的路径是:
    /etc/mysql/mysql.conf.d/mysqld.cnf
3. 在配置文件的[mysqld]节点下,加入一行:
    lower_case_table_names=1
4. 重启MySQL
    systemctl restart mysqld.service

ERR:1045(28000)

1
2
3
4
5
6
7
8
# 安装好数据库 初始化时报错 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
1. 首先停掉数据库服务:
    systemctl stop mariadb.service
2. 使用mysqld_safe来启动mysqld服务器:
    mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
3. 登录:mysql -u root mysql
4. 修改root用户密码:
    UPDATE user SET PASSWORD=PASSWORD('newpassword') where USER='root';

ERR:1054(42S22)

1
2
3
4
问题原因:password 字段是在mysql8以下的版本中标记mysql数据库里user表里的密码字段,
    但是mysql8的密码字段改了,改成了:authentication_string
所以当环境变成mysql8的时候,对应的sql语句应该变成:
    select user, authentication_string, host from user;

ERR:1118(42000)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 导入数据时 ERROR 1118 (42000) at line 1278: Row size too larg
ERROR 1118 (42000) at line 1278: Row size too large (> 8126).
Changing some columns to TEXT or BLOB may help. In current row format,
BLOB prefix of 0 bytes is stored inline.
1.首先确认自己的mariadb数据库是哪个版本,我以10.3.34版本为例
    mysql -uroot -pxxx登入数据库
    show variables like '%char%';//未修改的默认是latin
2.vim /etc/my.cnf
[mysql]
default-character-set = utf8
[mysqld]
character_set_server = utf8
3.重启mariadb服务
    systemctl restart mariadb
1
2
3
4
5
6
# 在my.conf里添加
[mysqld]
innodb_strict_mode = 0
# 注:innodb_strict_mode设置影响CREATE TABLE,ALTER TABLE和
CREATE INDEX语句的语法错误的处理。innodb_strict_mode还启用了记录大小检查,
因此INSERT或UPDATE永远不会失败,因为记录对于所选页面大小而言太大。

Nginx

1
2
3
4
403:html根路径不对
vim /etc/nginx/nginx.conf
500:没有权限
chmod 777 -R /usr/share/nginx/html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
nginx报错:rewrite or internal redirection cycle while internally redirecting to “/“ 
server {
    listen 60088;
    server_name localhost;
    # 证书相关,https新增
    location / {
        root html;
        index index.html index.htm;
        try_files $uri $uri/ D:/azpackage/nginx-1.20.2/html/oeos/index.html;
    }
    location /admin/ {
        proxy_pass http://localhost:60089/admin/;
    }
}
# linux下root要写绝对路径/usr/share/nginx/html

JDK

1
2
3
4
5
6
7
8
9
10
11
12
13
1. 打开配置环境变量的文件
    vi/etc/profile
2. 添加以下配置:
    JAVA_HOME=/home/jdk/jdk1.8.0_311
    PATH=$JAVA_HOME/bin:$PATH
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export JAVA_HOME
    export PATH
    export CLASSPATH
3. 让配置生效
    source/etc/profile
4. 测试配置结果
    echo $JAVA_HOME

Linux其他命令

1
2
3
4
5
6
7
8
查看系统版本命令:
lsb_release -a
uname -a
cat /etc/os-release
hostnamectl
每次开机都要source /etc/profile的解决方法:
在用户目录下的.bashrc中添加一句
source /etc/profile
0%