This commit is contained in:
2021-11-14 15:52:46 +08:00
parent 915c231124
commit 1e344dc204
112 changed files with 1039 additions and 1039 deletions

View File

@@ -6,7 +6,7 @@ tags: ["mysql"]
categories: ["database"]
---
# MySQL 5.7 配置文件 my.cnf
## MySQL 5.7 配置文件 my.cnf
```
[mysqld]
datadir = /db/mysql
@@ -53,24 +53,24 @@ categories: ["database"]
#slave-parallel-type = logical-clock
```
# 复制表结构
## 复制表结构
```sql
create table db1.t1 like db2.t2;
create table db1.t1 select db2.t2 where 1=2;
```
# 复制表结构及其数据
## 复制表结构及其数据
```sql
create table db1.t1 select db2.t2 [where ...]
```
# 复制表数据
## 复制表数据
```
insert into db2.t2(column1, column2 ...)
select column1, column2 ... from db1.t1 [where ...]
```
# 通过复制表文件来复制表数据
## 通过复制表文件来复制表数据
- 在db2中创建同结构表
```sql
create table db2.t1 like db1.t1;
@@ -97,48 +97,48 @@ categories: ["database"]
alter table db2.t1 import tablespace;
```
# 设置一个表的空列自增
## 设置一个表的空列自增
```sql
-- 删除可能存在的主键
alter table 表名 drop primary key;
alter table 表名 modify 列名 auto_increment primary key;
```
# 查看数据库中每个表的全部列名
## 查看数据库中每个表的全部列名
```sql
select table_name, column_name from
information_schema.columns
where table_schema = '数据库名';
```
# 查看数据库中每个表的行数
## 查看数据库中每个表的行数
```sql
select table_name, table_rows
from information_schema.tables
where table_schema = '数据库名';
```
# 查看数据库中每个表的索引
## 查看数据库中每个表的索引
```sql
select table_name, column_name, index_name
from INFORMATION_SCHEMA.STATISTICS
where table_schema = '数据库名';
```
# 表的部分列数据到另一个表
## 表的部分列数据到另一个表
```sql
update db2.t2(column1, column2 ...) = (
select column1, column2 from db1.t1
where db1.t1.id = db2.t2.id);
```
# 把语句执行结果写到文件
## 把语句执行结果写到文件
```bash
mysql -uroot -p -hsever_ip -Ddb_name
-Ne "select ... from table_name;" > file_name
```
# 表分区
## 表分区
- 查看表的分区情况
```sql
select table_schema, table_name, partition_name, table_rows
@@ -209,7 +209,7 @@ categories: ["database"]
check partition part_name_1, part_name_2;
```
# MySQL 5.7 从库多线程同步
## MySQL 5.7 从库多线程同步
```sql
stop slave;
set global slave_parallel_type='logical_clock';
@@ -218,12 +218,12 @@ categories: ["database"]
show processlist;
```
# MySQL 5.7 提示密码复杂度不够
## MySQL 5.7 提示密码复杂度不够
```sql
set global validate_password_policy=0;
```
# MySQL 5.7 从库复制失败跳过指定数量的事务
## MySQL 5.7 从库复制失败跳过指定数量的事务
```sql
stop slave;
-- 跳过一个事务
@@ -234,7 +234,7 @@ categories: ["database"]
slave-skip-errors=all #跳过所有错误
```
# MySQL 5.7 查看全部任务
## MySQL 5.7 查看全部任务
```sql
-- 分号换成 \G 显示完整 sql
show processlist;
@@ -242,17 +242,17 @@ categories: ["database"]
SELECT command FROM information_schema.processlist;
```
# MySQL 5.7 ssl 连接
## MySQL 5.7 ssl 连接
```
--ssl-mode=REQUIRED
```
# MariaDB 10.1 修改密码
## MariaDB 10.1 修改密码
```sql
UPDATE user SET password=password('newpassword') WHERE user='root';
```
# MySQL 5.7 编码
## MySQL 5.7 编码
- 查看
```sql
SHOW VARIABLES LIKE 'character_set%';
@@ -271,12 +271,12 @@ categories: ["database"]
CONVERT TO CHARSET UTF8MB4 COLLATE UTF8MB4_GENERAL_CI;
```
# MySQL 5.7 升级数据库管理表结构
## MySQL 5.7 升级数据库管理表结构
```bash
mysql_upgrade -u root -p
```
# MySQL 5.7 误删 root 后恢复 root 账户
## MySQL 5.7 误删 root 后恢复 root 账户
- 停止 mysql 服务
```bash
systemctl stop mysqld
@@ -352,7 +352,7 @@ categories: ["database"]
systemctl start mysqld
```
# 通过EXPLAIN分析SQL的执行计划
## 通过EXPLAIN分析SQL的执行计划
- 使用
```sql
explain sql
@@ -384,13 +384,13 @@ categories: ["database"]
- Using Index Condition ICP优化直接在存储引擎完成条件过滤
- Using Flesort 依靠索引顺序达不到排序效果,需额外排序
# 统计 insert、delete、update 和 select 次数
## 统计 insert、delete、update 和 select 次数
```sql
show global status where Variable_name in
('com_insert', 'com_delete', 'com_update', 'com_select');
```
# csv 文件
## csv 文件
- 导出
```
# Shell 终端