diff --git "a/\345\274\240\346\263\275\345\220\214/20240614-linux\350\277\233\347\250\213\347\256\241\347\220\206.md" "b/\345\274\240\346\263\275\345\220\214/20240614-linux\350\277\233\347\250\213\347\256\241\347\220\206.md" new file mode 100644 index 0000000000000000000000000000000000000000..8089af89738c51e57c5601aa23ce52fe7feed866 --- /dev/null +++ "b/\345\274\240\346\263\275\345\220\214/20240614-linux\350\277\233\347\250\213\347\256\241\347\220\206.md" @@ -0,0 +1 @@ +## linux进程管理 diff --git "a/\345\274\240\346\263\275\345\220\214/20240701_mysql.md" "b/\345\274\240\346\263\275\345\220\214/20240701_mysql.md" new file mode 100644 index 0000000000000000000000000000000000000000..92fd48ce304c7ea9bf072fed5bc6071d1979e8c8 --- /dev/null +++ "b/\345\274\240\346\263\275\345\220\214/20240701_mysql.md" @@ -0,0 +1,130 @@ +### 本地上传安装包 +` scp D:\mysql-client_8.4.0-1debian12_amd64.deb root@192.168.163.66:\root ` + +### 如何在 Debian 12 上安装 MySQL + +``` + +1.命令界面下使用wget命令下载最新的发行包: wget https://repo.mysql.com/mysql-apt-config_0.8.29-1_all.deb + +2.进行安装 dpkg -i mysql-apt-config_0.8.29-1_all.deb + +3. 更新软件包,并安装MySQL: + apt update + apt insatll mysql-server + + +``` + +


+ + +### 修改mysql用户密码 +``` +1. ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; + +2. 修改密成功会返回0 rows affected" + + 2.1 当使用 ALTER USER 或 SET PASSWORD 命令来修改用户密码时,MySQL内部的操作方式可能导致影响行数的计算为0。这是因为修改密码操作并不实际涉及修改表中的行,而是更新用户权限和凭据信息。 + +3. 刷新权限(可选):执行 FLUSH PRIVILEGES; 命令以确保最新的权限更改生效。 + + +4(看情况). 重启MySQL服务:一般情况下,修改用户密码后并不需要重启MySQL服务。service mysql stop +``` + + +


+ + +要允许MySQL远程登录,需要进行以下步骤: + +`查看用户信息:SELECT User, Host, authentication_string FROM mysql.user;` + +### 在MySQL服务器上配置 + +1. **编辑MySQL配置文件**: + - 使用管理员权限登录到MySQL服务器。 + - 找到并编辑MySQL的配置文件,通常在 `/etc/mysql/mysql.conf.d/mysqld.cnf` 或者 `/etc/mysql/my.cnf` 中。 + +2. **绑定地址**: + - 找到 `bind-address` 参数,并将其设置为MySQL服务器所在的IP地址,或者设置为 `0.0.0.0` 表示允许所有IP地址连接。如果你希望仅允许特定IP地址连接,可以指定具体的IP地址。 + + ```ini + bind-address = 0.0.0.0 + ``` + + 这一步允许MySQL接受来自所有IP地址的连接。 + +3. **重启MySQL服务**: + - 在修改了配置文件后,保存更改并重启MySQL服务以使更改生效: + + ```bash + sudo systemctl restart mysql + ``` + +### 在MySQL中配置远程用户访问 + +4. **创建远程登录用户**: + - 登录到MySQL服务器的命令行界面: + + ```bash + mysql -u root -p + ``` + + - 输入密码后,使用以下SQL语句创建一个允许远程连接的用户。替换 `remote_user` 和 `password` 为你希望设置的用户名和密码,并替换 `remote_ip` 为允许连接的远程IP地址或者 `%` 表示允许从任何IP连接。 + + ```sql + CREATE USER 'remote_user'@'remote_ip' IDENTIFIED BY 'password'; + ``` + + 例如,允许从任何IP地址连接: + + ```sql + CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password'; + ``` + +5. **授予远程登录用户权限**: + - 授予新创建用户所需的权限。例如,授予该用户对所有数据库的完全访问权限: + + ```sql + GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION; + ``` + + 或者,仅授予特定数据库的权限: + + ```sql + GRANT ALL PRIVILEGES ON database_name.* TO 'remote_user'@'%'; + ``` + +6. **刷新权限**: + - 执行以下命令以使权限更改生效: + + ```sql + FLUSH PRIVILEGES; + ``` + +### 在防火墙中允许MySQL端口 + +7. **配置防火墙**: + - 如果MySQL服务器有防火墙,确保允许MySQL默认的端口(通常是3306)通过防火墙。 + + ```bash + sudo ufw allow 3306/tcp + ``` + + 替换 `3306` 为你配置的MySQL端口号。 + +### 测试远程连接 + +8. **测试远程连接**: + - 现在可以从远程计算机使用MySQL客户端连接到MySQL服务器: + + ```bash + mysql -u remote_user -h mysql_server_ip -p + ``` + + 其中 `remote_user` 是你创建的远程用户,`mysql_server_ip` 是MySQL服务器的IP地址或主机名。然后输入密码进行连接。 + +通过这些步骤,你应该可以成功设置并测试远程连接到MySQL服务器了。确保在允许远程访问时考虑安全性,并根据实际需求和网络环境进行配置。 + diff --git "a/\345\274\240\346\263\275\345\220\214/20240702_mysql\345\221\275\344\273\244.md" "b/\345\274\240\346\263\275\345\220\214/20240702_mysql\345\221\275\344\273\244.md" new file mode 100644 index 0000000000000000000000000000000000000000..540f3e96b6081cb5116dbe200b2907b44230de47 --- /dev/null +++ "b/\345\274\240\346\263\275\345\220\214/20240702_mysql\345\221\275\344\273\244.md" @@ -0,0 +1,105 @@ +linux 系统下使用 mysql 数据库时的一些常用命令如下: + +1. **登录 mysql**: + ``` + mysql -u username -p + ``` + 这会提示你输入密码,然后登录到 mysql 数据库。 + +2. **退出 mysql**: + ``` + exit; + ``` + 或者按 `ctrl + d`。 + +3. **显示数据库**: + ``` + show databases; + ``` + 显示所有可用的数据库。 + +4. **选择数据库**: + ``` + use database_name; + ``` + 选择要使用的数据库。 + +5. **显示数据表**: + ``` + show tables; + ``` + 显示选定数据库中的所有表格。 + +6. **显示表结构**: + ``` + describe table_name; + ``` + 或者 + ``` + show columns from table_name; + ``` + 显示指定表格的结构和字段信息。 + +7. **创建数据库**: + ``` + create database database_name; + ``` + 创建一个新的数据库。 + +8. **删除数据库**: + ``` + drop database database_name; + ``` + 删除指定的数据库(谨慎操作)。 + +9. **创建表**: + ``` + create table table_name ( + column1 datatype, + column2 datatype, + ... + ); + ``` + 创建一个新的数据表。 + +10. **删除表**: + ``` + drop table table_name; + ``` + 删除指定的数据表(谨慎操作)。 + +11. **插入数据**: + ``` + insert into table_name (column1, column2, ...) values (value1, value2, ...); + ``` + 向指定表格插入新的数据行。 + +12. **查询数据**: + ``` + select * from table_name; + ``` + 查询表格中的数据。 + +13. **更新数据**: + ``` + update table_name set column1 = value1, column2 = value2, ... where condition; + ``` + 更新表格中已有的数据。 + +14. **删除数据**: + ``` + delete from table_name where condition; + ``` + 删除表格中的数据行。 + +15. **授权**: + ``` + grant privileges on database_name.table_name to 'username'@'hostname'; + ``` + 授权用户对指定数据库或表格执行特定操作。 + +16. **撤销权限**: + ``` + revoke privileges on database_name.table_name from 'username'@'hostname'; + ``` + 撤销之前授予的权限。 \ No newline at end of file diff --git "a/\345\274\240\346\263\275\345\220\214/20240703_postgresql.md" "b/\345\274\240\346\263\275\345\220\214/20240703_postgresql.md" new file mode 100644 index 0000000000000000000000000000000000000000..a971135751e167c6de58bb6352ecc73a4899e1b5 --- /dev/null +++ "b/\345\274\240\346\263\275\345\220\214/20240703_postgresql.md" @@ -0,0 +1,144 @@ +postgresql 是一个功能强大的关系型数据库管理系统,支持丰富的 sql 命令和功能。以下是一些常用的 postgresql 命令和功能列表: + +### 数据库管理 + +1. **连接到数据库** + ```sql + \c dbname username # 连接到指定数据库和用户名 + ``` + +2. **列出所有数据库** + ```sql + \l # 或 \list + ``` + +3. **创建数据库** + ```sql + create database dbname; + ``` + +4. **删除数据库** + ```sql + drop database dbname; + ``` + +5. **切换数据库** + ```sql + \connect dbname; + ``` + +### 表管理 + +1. **列出所有表** + ```sql + \dt # 或 \d + ``` + +2. **显示表结构** + ```sql + \d+ tablename # 显示指定表的结构和详细信息 + ``` + +3. **创建表** + ```sql + create table tablename ( + column1 datatype constraints, + column2 datatype, + ... + ); + ``` + +4. **删除表** + ```sql + drop table tablename; + ``` + +5. **重命名表** + ```sql + alter table tablename rename to new_tablename; + ``` + +6. **添加列** + ```sql + alter table tablename add column columnname datatype; + ``` + +7. **删除列** + ```sql + alter table tablename drop column columnname; + ``` + +### 数据操作 + +1. **插入数据** + ```sql + insert into tablename (column1, column2, ...) values (value1, value2, ...); + ``` + +2. **更新数据** + ```sql + update tablename set column1 = value1, column2 = value2 where condition; + ``` + +3. **删除数据** + ```sql + delete from tablename where condition; + ``` + +4. **查询数据** + ```sql + select column1, column2, ... from tablename where condition; + ``` + +### 用户和权限管理 + +1. **创建用户** + ```sql + create user username with password 'password'; + ``` + +2. **删除用户** + ```sql + drop user username; + ``` + +3. **授权** + ```sql + grant permission on table to username; + ``` + +4. **撤销权限** + ```sql + revoke permission on table from username; + ``` + +### 事务管理 + +1. **开始事务** + ```sql + begin; + ``` + +2. **提交事务** + ```sql + commit; + ``` + +3. **回滚事务** + ```sql + rollback; + ``` + +### 其他命令 + +1. **退出 postgresql** + ```sql + \q + ``` + +2. **查看帮助** + ```sql + \h command_name # 查看特定命令的帮助信息 + ``` + +以上命令涵盖了 postgresql 中常用的管理、数据操作和权限控制等方面。根据具体需求和环境,可以进一步了解和使用更多的 postgresql 功能和命令。 \ No newline at end of file diff --git "a/\345\274\240\346\263\275\345\220\214/20240704-postgresql\344\275\234\344\270\232.md" "b/\345\274\240\346\263\275\345\220\214/20240704-postgresql\344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..4d2c35629a51643a2bfde6e26f13fe9752c887b6 --- /dev/null +++ "b/\345\274\240\346\263\275\345\220\214/20240704-postgresql\344\275\234\344\270\232.md" @@ -0,0 +1,33 @@ +```psql +create database AA +\c AA +CREATE TABLE zhang ( + id SERIAL PRIMARY KEY, + title VARCHAR(255) NOT NULL, + content TEXT NOT NULL, + author VARCHAR(100) NOT NULL, + publishedtime TIMESTAMP, + nickname VARCHAR(100), + avatar VARCHAR(255) +); +DO $$ +DECLARE + start_time TIMESTAMP; + end_time TIMESTAMP; + elapsed_time INTERVAL; +BEGIN + start_time := clock_timestamp(); + -- 执行插入操作 + INSERT INTO blog (title, content, author, publishedtime, nickname, avatar) + SELECT md5(random()::text) AS title, + md5(random()::text) AS content, + md5(random()::text) AS author, + clock_timestamp() - make_interval(0, 0, 0, (random() * 365)::int, (random() * 24)::int, (random() * 60)::int, (random() * 60)::int) AS publishedtime, + md5(random()::text) AS nickname, + md5(random()::text) AS avatar + FROM generate_series(1, 10000000); + end_time := clock_timestamp(); + elapsed_time := end_time - start_time; + RAISE NOTICE 'SQL 插入操作运行时间: %', elapsed_time; +END $$;\ +``` \ No newline at end of file diff --git "a/\345\274\240\346\263\275\345\220\214/20240707-\350\231\232\346\213\237\346\234\272\346\217\222\345\205\245\347\224\250\346\227\266.jpg" "b/\345\274\240\346\263\275\345\220\214/20240707-\350\231\232\346\213\237\346\234\272\346\217\222\345\205\245\347\224\250\346\227\266.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..e513d95c1e6d58f1d2da75fd14bb29e14b367480 Binary files /dev/null and "b/\345\274\240\346\263\275\345\220\214/20240707-\350\231\232\346\213\237\346\234\272\346\217\222\345\205\245\347\224\250\346\227\266.jpg" differ