From 997f036ae8b50a50d207ff3aeb1e9a585ab260a0 Mon Sep 17 00:00:00 2001 From: zcq <3157589885@qq.com> Date: Wed, 10 Jul 2024 08:38:16 +0800 Subject: [PATCH] zy --- ...33\347\250\213\347\256\241\347\220\206.md" | 24 ++++++ ...13\347\274\251\347\243\201\347\233\230.md" | 66 ++++++++++++++++ ...wnBlog.service\346\234\215\345\212\241.md" | 66 ++++++++++++++++ ...20240701-Mysql\345\256\211\350\243\205.md" | 74 ++++++++++++++++++ ...4\347\250\213\350\256\277\351\227\256 .md" | 47 ++++++++++++ .../20240703_postgrepsql.md" | 76 +++++++++++++++++++ ...46\344\270\262\344\275\234\344\270\232.md" | 52 +++++++++++++ 7 files changed, 405 insertions(+) create mode 100644 "\345\274\240\350\266\205\347\276\244/20240614-\350\277\233\347\250\213\347\256\241\347\220\206.md" create mode 100644 "\345\274\240\350\266\205\347\276\244/20240619-\350\247\243\345\216\213\347\274\251\347\243\201\347\233\230.md" create mode 100644 "\345\274\240\350\266\205\347\276\244/20240624_markdownBlog.service\346\234\215\345\212\241.md" create mode 100644 "\345\274\240\350\266\205\347\276\244/20240701-Mysql\345\256\211\350\243\205.md" create mode 100644 "\345\274\240\350\266\205\347\276\244/20240702-\350\277\234\347\250\213\350\256\277\351\227\256 .md" create mode 100644 "\345\274\240\350\266\205\347\276\244/20240703_postgrepsql.md" create mode 100644 "\345\274\240\350\266\205\347\276\244/20240704-postgresql\347\224\237\346\210\220\351\232\217\346\234\272\345\255\227\347\254\246\344\270\262\344\275\234\344\270\232.md" diff --git "a/\345\274\240\350\266\205\347\276\244/20240614-\350\277\233\347\250\213\347\256\241\347\220\206.md" "b/\345\274\240\350\266\205\347\276\244/20240614-\350\277\233\347\250\213\347\256\241\347\220\206.md" new file mode 100644 index 0000000..d9fbc44 --- /dev/null +++ "b/\345\274\240\350\266\205\347\276\244/20240614-\350\277\233\347\250\213\347\256\241\347\220\206.md" @@ -0,0 +1,24 @@ +## 进程管理 + +每个进程都有一个唯一的标识符,称为进程ID(Process ID),简称PID。当系统启动一个新进程时,它会分配一个目前尚未使用的PID给该进程 + +#### 命令: + +1. ps:能列出系统中运行的进程 包括进程号、命令、CPU使用量以及内存使用量等 + - ps -a 列出进程所有运行中/激活进程 + - ps -ef 列出需要进程 + - ps -aux 显示进程信息 +2. pstree:通过显示进程的树状图来展示进程间的关系(Debian12操作系统需要安装psmisc包) + - pstree -p 显示进程的PID + - pstree -u 显示进程的所属用户 +3. kill:通过进程的pid来结束终止进程 + - kill -9 进程id(-9表示强迫进程立即停止) +4. killall:通过进程名称来结束终止进程 + - killall 进程名称 +5. pgrep:用于基于名称和其他属性查找进程的进程PID + - pgrep -l:列出进程的名称和PID + - pgrep -u:匹配特定用户的进程 +6. top: + - 按q退出界面 + - top -b: 打印所有进程 + - top -n1: 打印一次(静态) diff --git "a/\345\274\240\350\266\205\347\276\244/20240619-\350\247\243\345\216\213\347\274\251\347\243\201\347\233\230.md" "b/\345\274\240\350\266\205\347\276\244/20240619-\350\247\243\345\216\213\347\274\251\347\243\201\347\233\230.md" new file mode 100644 index 0000000..3cf632a --- /dev/null +++ "b/\345\274\240\350\266\205\347\276\244/20240619-\350\247\243\345\216\213\347\274\251\347\243\201\347\233\230.md" @@ -0,0 +1,66 @@ +### 日常管理命令 + +- 启用 systemctl start 服务的名称 +- 停用 systemctl stop 服务的名称 +- 重启 systemctl restart 服务的名称 +- 状态 systemctl status 服务的名称 + +### 服务配置语法和示例 + +是操作系统中一组特殊的应用,当在运行的时候,一般不提供界面,只工作在后台,并且不会随终端的退出而退出 + + + +### 压缩和解压缩 + +- 打包 tar + +- 压缩 tar -czvf 压缩文件名.tar.gz 要压缩的文件或目录 + + - -c:创建新的 tar 归档文件 + - -z:使用 gzip 压缩算法 + - -v:显示详细信息 + - -f:指定归档文件名 + +- 解压缩 tar -xzvf 归档文件名.tar.gz + + - -x:从 tar 归档文件中提取文件 + - -z:使用 gzip 解压缩算法 + - -v:显示详细信息 + - -f:指定归档文件名 + + + + + + ### 磁盘管理 + + - du + - df + - fdisk + + + + 软链接:ln -s 文件 软链接文件 + + - 以路径的形式存在,类似于Windows操作系统中的快捷方式 + + - 可以 跨文件系统 ,硬链接不可以 + + - 可以对目录进行链接 + + + + 硬链接:ln 文件 软链接文件 + + - 以文件副本的形式存在,但不占用实际空间 + - 不允许给目录创建硬链接 + - 只有在同一个文件系统中才能创建 + + + + + + + + \ No newline at end of file diff --git "a/\345\274\240\350\266\205\347\276\244/20240624_markdownBlog.service\346\234\215\345\212\241.md" "b/\345\274\240\350\266\205\347\276\244/20240624_markdownBlog.service\346\234\215\345\212\241.md" new file mode 100644 index 0000000..ed43806 --- /dev/null +++ "b/\345\274\240\350\266\205\347\276\244/20240624_markdownBlog.service\346\234\215\345\212\241.md" @@ -0,0 +1,66 @@ +1. scp -r 上传的东西 主机名@IP地址(或域名):/上传的路径 + + ``` + scp -r E:\王威斌\大二下学期实施运维\部署网站\markdown-blog-v1.1.1-linux-amd64.tar.gz root@wwb666.top:/root + ``` + +2. 解压markdown: + + ``` + tar -zxvf markdown-blog-v1.1.1-linux-amd64.tar.gz + ``` + +3. 进入markdown + + ``` + cd markdown-blog-linux-amd64/ + ``` + +4. ``` + mkdir md + vim md/readme.md + 输入内容 + ``` + + + +5. cd /lib/systemd/system:进入真正的配置服务所在的路径 + +6. cp ssh.service markdownBlog.service + +7. vim markdownBlog.service + +8. 修改内容:(删除光标后面的所有内容:d$) + + ``` + [Unit] + Description=这是一个可以将markdown文件变成博客网站的一个程序 + + [Service] + ExecStart=/root/markdown-blog-linux-amd64/markdown-blog web + + [Install] + Alias=blogs.service + ``` + + + +9. 重新启动服务 + + ``` + systemctl daemon-reload + ``` + +10. 查看markdownBlog状态:systemctl status markdownBlog + +11. 启动markdownBlog: systemctl status markdownBlog + + + + + + + + + + diff --git "a/\345\274\240\350\266\205\347\276\244/20240701-Mysql\345\256\211\350\243\205.md" "b/\345\274\240\350\266\205\347\276\244/20240701-Mysql\345\256\211\350\243\205.md" new file mode 100644 index 0000000..0edd3af --- /dev/null +++ "b/\345\274\240\350\266\205\347\276\244/20240701-Mysql\345\256\211\350\243\205.md" @@ -0,0 +1,74 @@ +## 安装MySQL + +1. scp -r C:\Users\20168\Downloads\mysql-apt-config_0.8.30-1_all.deb root@192.168.92.13:/root + +2. apt install gnupg + +3. dpkg -i mysql-apt-config_0.8.29-1_all.deb + +4. apt update + +5. apt install mysql-server + +6. ``` + systemctl status mysql 查看服务状态 + ``` + +7. mysql -uroot -p : 登录 + + + +## 题目 + +1. #### 如果我有一个sql的文件,如何在服务器中执行,以便导入数据 + + - 上传到服务器上(记住所在路径) + - 进入MySQL,使用source 绝对路径 + + + +2. #### 创建和插入一个至少有1000W条记录的数据库表,无论用什么方式 + + - create database wwb1; + + use wwb1; + + create table t1 ( + + id int auto_increment primary key, + + Name varchar(255), + + age int + + ); + + + + DELIMITER $ + + create PROCEDURE kk() + + BEGIN + + DECLARE i int DEFAULT 1; + + while (i <=10000000) DO + + ​ insert into t1 (Name,age) values (CONCAT('Name',i),RAND() * 100); + + ​ set i=i+1; + + end while; + + END$ + + + + CALL kk(); + + - scp 上传到服务器上 + + - 进入数据库 + + - source 绝对路径 \ No newline at end of file diff --git "a/\345\274\240\350\266\205\347\276\244/20240702-\350\277\234\347\250\213\350\256\277\351\227\256 .md" "b/\345\274\240\350\266\205\347\276\244/20240702-\350\277\234\347\250\213\350\256\277\351\227\256 .md" new file mode 100644 index 0000000..19bd5de --- /dev/null +++ "b/\345\274\240\350\266\205\347\276\244/20240702-\350\277\234\347\250\213\350\256\277\351\227\256 .md" @@ -0,0 +1,47 @@ +## 设置MySQL,使可以远程访问 + +1. mysql -uroot -p : 进入数据库 + +2. use mysql; : 切换为MySQL数据库 + +3. 查询信息 + + ``` + select user,host from user; + +------------------+-----------+ + | user | host | + +------------------+-----------+ + | mysql.infoschema | localhost | + | mysql.session | localhost | + | mysql.sys | localhost | + | root | localhost | + +------------------+-----------+ + 4 rows in set (0.00 sec) + + host字段中,localhost表示只允许本机访问 + ``` + +4. 实现远程连接,可以将root用户的host改为% + + ``` + update user set host="%" where user="root"; + ``` + +5. flush privileges : 使本次修改立即生效 + + + +6. ``` + ststemctl status firewalld --- 查看防火墙是运行 + firewall-cmd --add-port=3306/tcp --permanent -- 添加需要开放的端口 + firewall-cmd --reload -- 重新载入添加的端口 + firewall-cmd --query-port=3306/tcp -- 查询端口是否开启 + ``` + +7. sudo iptables -A INPUT -p tcp --dport 5432 -j ACCEPT -- 开放5432端口 + +8. 使用服务器的话还需要开启安全组 + +9. 测试能否远程登录: + + mysql -h 1IP地址 -u root -P3306 -p \ No newline at end of file diff --git "a/\345\274\240\350\266\205\347\276\244/20240703_postgrepsql.md" "b/\345\274\240\350\266\205\347\276\244/20240703_postgrepsql.md" new file mode 100644 index 0000000..2a92017 --- /dev/null +++ "b/\345\274\240\350\266\205\347\276\244/20240703_postgrepsql.md" @@ -0,0 +1,76 @@ +## 安装postgresql + +1. apt install -y postgresql-common + +2. ``` + /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh 点回车 + ``` + +3. apt install postgrepsql + +4. 进入postgresql:su postgres + +5. psql + +6. \l:列出当前所有数据库 \c:连接数据库 \dt:查看数据库 + + + +## 远程登录 + +删除postgres密码:sudo passwd -d postgres + +更改postgres密码:sudo -u postgres passwd + +``` +修改密码 +sudo -u postgres psql +ALTER USER postgres WITH PASSWORD 'postgres'; +``` + +1. vim /etc/postgresql/版本号/main/postgresql.conf + +2. 找到#listen_addresses = 'localhost' 取消注释,改为listen_addresses = '*' + +3. vim /etc/postgresql/16/main/pg_hba.conf + +4. 在文件末尾添加以下行,允许所有IP地址通过密码连接:host all all 0.0.0.0/0 md5 + +5. sudo iptables -A INPUT -p tcp --dport 5432 -j ACCEPT -- 开放5432端口 + +6. 服务器需要设置安全组端口 + +7. ``` + ststemctl status firewalld --- 查看防火墙是运行 + firewall-cmd --add-port=3306/tcp --permanent -- 添加需要开放的端口 + firewall-cmd --reload -- 重新载入添加的端口 + firewall-cmd --query-port=3306/tcp -- 查询端口是否开启 + ``` + + + + + + + +## 创建1000万条数据 + +``` + +标题、内容、作者、出版时间、昵称、头像 +create database wwb; +use wwb; +create table blog ( +title varchar(255), +content varchar(255), +author varchar(255), +publishedtime timestamp, +nickname varchar(255), +avatar varchar(255) +); + + +EXPLAIN (ANALYZE, TIMING) insert into blog select generate_series(1,10000000),md5(random()::varchar),md5(random()::varchar),clock_timestamp(),md5(random()::varchar),md5(random()::varchar); + +插入时间:63.1s 55529.030 ms +``` diff --git "a/\345\274\240\350\266\205\347\276\244/20240704-postgresql\347\224\237\346\210\220\351\232\217\346\234\272\345\255\227\347\254\246\344\270\262\344\275\234\344\270\232.md" "b/\345\274\240\350\266\205\347\276\244/20240704-postgresql\347\224\237\346\210\220\351\232\217\346\234\272\345\255\227\347\254\246\344\270\262\344\275\234\344\270\232.md" new file mode 100644 index 0000000..70d8885 --- /dev/null +++ "b/\345\274\240\350\266\205\347\276\244/20240704-postgresql\347\224\237\346\210\220\351\232\217\346\234\272\345\255\227\347\254\246\344\270\262\344\275\234\344\270\232.md" @@ -0,0 +1,52 @@ +### 写一个自义函数,要求传入一个1到30到正整数,返回指定参数个的随机字符 + +string_agg:连接字符串 + +``` +create or replace function gen_hanzi(int) +returns text as $$ +declare -- 局部变量 + res text; +begin + if $1 >=1 then + select string_agg(chr(int4(random()*25)+65), '') into res from generate_series(1,$1); + return res; + end if; + return null; +end; +$$ language plpgsql strict; + +select gen_hanzi(3); +``` + +``` +create or replace function random_string(integer) +returns text as +$$ + select upper(array_to_string(array(select substring('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' FROM (ceil(random()*62))::int FOR 1) FROM generate_series(1, $1)), '')); +$$ +language sql; + +select random_string(5); +``` + + + +### 自定义函数,要求随机返回1到30位的英文字符,最少返回一个,最多长度30 + +``` +create or replace function random_text1() +returns text as $$ +declare +res text; +begin + select string_agg(chr(int4(random()*25)+65),'') into res from generate_series(1,(select floor(random()*30+1)::int)); + return res; +end; +$$ language plpgsql; + + +select random_text1(); +``` + +## -- Gitee