From 4dbab755602a1b2dae64715e4dffcb882c15ed0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?46=E4=BB=98=E8=82=96=E8=82=96?= <2182204697@qq.com> Date: Wed, 3 Jul 2024 23:57:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...56\345\272\223\346\223\215\344\275\234.md" | 183 ++++++++++++++++++ ...05\346\225\260\346\215\256\345\272\223.md" | 52 +++++ 2 files changed, 235 insertions(+) create mode 100644 "46\344\273\230\350\202\226\350\202\226/24-0703 \347\250\213\345\272\217\345\256\211\350\243\205\346\226\271\345\274\217\344\270\216\346\225\260\346\215\256\345\272\223\346\223\215\344\275\234.md" create mode 100644 "46\344\273\230\350\202\226\350\202\226/24-0703debian\345\256\211\350\243\205\346\225\260\346\215\256\345\272\223.md" diff --git "a/46\344\273\230\350\202\226\350\202\226/24-0703 \347\250\213\345\272\217\345\256\211\350\243\205\346\226\271\345\274\217\344\270\216\346\225\260\346\215\256\345\272\223\346\223\215\344\275\234.md" "b/46\344\273\230\350\202\226\350\202\226/24-0703 \347\250\213\345\272\217\345\256\211\350\243\205\346\226\271\345\274\217\344\270\216\346\225\260\346\215\256\345\272\223\346\223\215\344\275\234.md" new file mode 100644 index 0000000..52b1027 --- /dev/null +++ "b/46\344\273\230\350\202\226\350\202\226/24-0703 \347\250\213\345\272\217\345\256\211\350\243\205\346\226\271\345\274\217\344\270\216\346\225\260\346\215\256\345\272\223\346\223\215\344\275\234.md" @@ -0,0 +1,183 @@ +### 程序安装方式 + +1. apt包管理工具,自动在线安装,自动安装需要的一些依赖包 + +2. 手动下载的安装包,压缩包等,要自己安装依赖包 + - wget http://www.xxx.com/vim 直接下载到服务器 + - 先下载到电脑上,用scp 上传到服务器 + - sftp -->put get + - tar.gz... .deb 二进制的安装包 .exe + +3. 下载源码,编辑安装 + + + +### 数据库操作 + +1. 创建数据库 +2. 刷经典50题力扣 +3. 生成sql脚本文件,如何在linux导入sqL文件,执行它 +4. 如何备份和恢复数据库 +5. 让数据库可以远程登录 +6. 数据库分两种mysql-server + - 服务端:提供数据库服务那端mysql-server + - 客户端:连接服务器并使用数据库的那一端cmd +7. 如何修改端口 + +### 代码 + +1. 登录数据库 + + ```bash + mysql -u root -p + # 输入密码 + ``` + +2. 创建数据库 + + ```sql + creat database 库名; + ``` + +3. 使用数据库 + + ```sql + use 库名; + ``` + +4. 查看当前使用的数据库 + + ```sql + select database (); + ``` + +5. 删除数据库 + + ```sql + drop database 库名; + ``` + +##### 表: + +1. 创建数据表 + + ```sql + creat table 表名( + id int auto_increment primary key, + name varchar(10) not null, + sex char(1), + ); + #auto_increment 自增 + #primary key 主键 + ``` + +2. 查看表结构 + + ```sql + desc 表名; + ``` + +3. 修改表结构 + + ```sql + alter table 表名 add column 列名 VARCHAR(100); + ``` + +4. 删除数据表 + + ```sql + drop table 表名; + ``` + + + +##### 数据操作 + +1. 插入数据 + + ```sql + insert into 表名(列1,列2) values ('值1','值2'); + ``` + +2. 更新数据 + + ```sql + update 表名 set 列='' where 列=''; + #更新指定列的值 where 条件 + ``` + +3. 删除数据 + + ```sql + delete from 表名 where 列=''; + ``` + + + + ## MySQL远程连接 + + 1. 在登录mysql后,使用以下命令 + + ```bash + show databases; + use mysql; + select host,user from user; + update user set host = '%' where user = 'root'; + flush privileges; + ``` + + + + 2. 开启端口 + + ```bash + ufw status + ufw allow 3306/tcp + whereis mysql + cd /etc/mysql/ + vim mysql.conf.d/mysqld.cnf + 最后一行插入 port = 3306 + systemctl restart mysql + systemctl status mysql + ``` + + + + 3. 远程登录 + + ```bash + mysql -u root -p -h 47.113.195.42 + ``` + +## sql脚本 + +1. 新建一个文本,把内容复制进去,改txt 为sql + + ``` + mysql_test.sql + ``` + +2. 在cmd中使用scp 上传 + + ```bash + scp mysql_test.sql root@47.113.195.42:/home + home为临时文件 + ``` + +3. 登录mysql后, + + ```bash + source /home/mysql_test.sql 将sql导入到mysql中 + ``` + +4. 检查 + + ``` + show databases; + show tables; + ``` + + + +## 备份与恢复数据库 + diff --git "a/46\344\273\230\350\202\226\350\202\226/24-0703debian\345\256\211\350\243\205\346\225\260\346\215\256\345\272\223.md" "b/46\344\273\230\350\202\226\350\202\226/24-0703debian\345\256\211\350\243\205\346\225\260\346\215\256\345\272\223.md" new file mode 100644 index 0000000..8c52b7a --- /dev/null +++ "b/46\344\273\230\350\202\226\350\202\226/24-0703debian\345\256\211\350\243\205\346\225\260\346\215\256\345\272\223.md" @@ -0,0 +1,52 @@ +## Debian安装MySQL + +1. 更新系统软件包并安装必要的依赖包。 + + ```bash + sudo apt update -y + sudo apt install -y wget gnupg + ``` + + + +2. 下载 MySQL 的官方仓库配置文件,并将其保存到 `/tmp` 目录中。 + + ```bash + wget https://repo.mysql.com/mysql-apt-config_0.8.18-1_all.deb -P /tmp + ``` + + + +3. 安装 MySQL 的官方仓库配置文件,并选择 MySQL 8 的仓库。 + + ```bash + sudo dpkg -i /tmp/mysql-apt-config_0.8.18-1_all.deb + ``` + + + +4. 安装 MySQL 8 的软件包 + + ```bash + sudo apt update -y + sudo apt install -y mysql-server + ``` + + + +5. 启动 MySQL 服务,并设置开机自启动 + + ```bash + sudo systemctl start mysql + sudo systemctl enable mysql + ``` + + + +6. 查看 MySQL 服务的状态,确保它正在运行 + + ```bash + sudo systemctl status mysql + ``` + + \ No newline at end of file -- Gitee From afd7d45f9483e22df26f5e921592442322c5ef1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?46=E4=BB=98=E8=82=96=E8=82=96?= <2182204697@qq.com> Date: Fri, 5 Jul 2024 21:40:39 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...75\344\270\216\350\277\230\345\216\237.md" | 88 +++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 "46\344\273\230\350\202\226\350\202\226/24-0704\346\225\260\346\215\256\345\272\223\345\244\207\344\273\275\344\270\216\350\277\230\345\216\237.md" diff --git "a/46\344\273\230\350\202\226\350\202\226/24-0704\346\225\260\346\215\256\345\272\223\345\244\207\344\273\275\344\270\216\350\277\230\345\216\237.md" "b/46\344\273\230\350\202\226\350\202\226/24-0704\346\225\260\346\215\256\345\272\223\345\244\207\344\273\275\344\270\216\350\277\230\345\216\237.md" new file mode 100644 index 0000000..4a9fce6 --- /dev/null +++ "b/46\344\273\230\350\202\226\350\202\226/24-0704\346\225\260\346\215\256\345\272\223\345\244\207\344\273\275\344\270\216\350\277\230\345\216\237.md" @@ -0,0 +1,88 @@ +### 数据库备份与还原 + +1. 逻辑备份:默认情况下是,即备份结构又备份数据 + + 1. mysqldump: 单库备份,不会包含建库语句。所以恢复时要先指定数据库。 + + 1. 要么在恢复时,先指定好数据库(这个数据可以任意) + + ```bash + mysqldump -u root -p test > /tmp/test.sql + ``` + + 2. 指定多个库的备份,已经包含建库语句了,所以恢复时不指定数据库 + + 1. --databases 库1 库2 .. + + ```bash + mysqldump -u root -p --databases test test2 > /tmp/test.sql + ``` + + 3. 备份所有数据库 + + ```bash + mysqldump -u root -p --all-databases > /tmp/all.sql + ``` + + 4. 备份单个表 + + ```bash + # mysqldump -u 用户名 -p 库名 表名> 备份的文件路径 + mysqldump -u root -p test stu > /tmp/stu.sql + ``` + + 5. 备份多个表 + + ```bash + # mysqldump -u 用户名 -p 库名 表名1 表2 .. > 备份的文件路径 + mysqldump -u root -p test stu1 stu2 > /tmp/stu.sql + ``` + + 6. 只备份数据库结构,但不备份数据 + + ```bash + mysqldump -u root -p --no-data test > /tmp/data.sql + ``` + + 7. 只备份数据,但不备份结构 + + ```bash + mysqldump -u root -p --no-create-info test > /tmp/data.sql + ``` + + 8. 备份数据库,压缩输出 + + ```bash + mysqldump -u root -p mysql_test | gzip > /tmp/test.sql.gz # 先压缩再备份 + gzip -d < /tmp/test.sql.gz | mysql -u root -p # gzip -d = gunzip + gunzip < /tmp/test.sql.gz | mysql -u root -p + ``` + + + +2. 还原(导入) + + 1. mysql -u root -p 数据库名 < 要恢复的文件的路径 (前提是这个数据库名要真实存在) + + ```bash + mysql -u root -p test < /tmp/test1.sql + ``` + + + + 2. 登录mysql后,先选择要恢复的数据库,再用source 要恢复的文件来恢复 + + ```bash + use test1; + source /tmp/test.sql + ``` + + + +3. 商业的备份工具 + +4. phpmyadmin + +5. 第三方的连接客户端也可以备份 + +6. 想想如何实现自动备份(周期任务,预习shell脚本的写法,全量和增量的备份) \ No newline at end of file -- Gitee