init
This commit is contained in:
+618
@@ -0,0 +1,618 @@
|
||||
# MySQL 常用命令
|
||||
|
||||
## 连接数据库
|
||||
|
||||
```bash
|
||||
# 查看版本
|
||||
mysql --version
|
||||
# 或
|
||||
mysql -V
|
||||
|
||||
# 连接数据库
|
||||
mysql -u root -p -h 127.0.0.1 -P 3306
|
||||
|
||||
# 连接指定数据库
|
||||
mysql -u root -p -h 127.0.0.1 -P 3306 database_name
|
||||
|
||||
# 使用密码连接(不安全,仅用于脚本)
|
||||
mysql -u root -p'password' -h 127.0.0.1 -P 3306
|
||||
|
||||
# 执行 SQL 文件
|
||||
mysql -u root -p -h 127.0.0.1 -P 3306 database_name < query.sql
|
||||
|
||||
# 执行 SQL 命令
|
||||
mysql -u root -p -h 127.0.0.1 -P 3306 -e "SHOW DATABASES;"
|
||||
|
||||
# 退出交互界面
|
||||
exit
|
||||
# 或
|
||||
\q
|
||||
# 或
|
||||
quit
|
||||
```
|
||||
|
||||
## 数据库管理
|
||||
|
||||
```sql
|
||||
-- 列出所有数据库
|
||||
SHOW DATABASES;
|
||||
|
||||
-- 创建数据库
|
||||
CREATE DATABASE database_name;
|
||||
CREATE DATABASE IF NOT EXISTS database_name;
|
||||
|
||||
-- 创建数据库并指定字符集
|
||||
CREATE DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- 删除数据库
|
||||
DROP DATABASE database_name;
|
||||
DROP DATABASE IF EXISTS database_name;
|
||||
|
||||
-- 切换数据库
|
||||
USE database_name;
|
||||
|
||||
-- 查看当前数据库
|
||||
SELECT DATABASE();
|
||||
|
||||
-- 查看数据库字符集
|
||||
SHOW CREATE DATABASE database_name;
|
||||
|
||||
-- 修改数据库字符集
|
||||
ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- 查看数据库大小
|
||||
SELECT
|
||||
table_schema AS 'Database',
|
||||
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)'
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'database_name'
|
||||
GROUP BY table_schema;
|
||||
|
||||
-- 查看所有数据库大小
|
||||
SELECT
|
||||
table_schema AS 'Database',
|
||||
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)'
|
||||
FROM information_schema.tables
|
||||
GROUP BY table_schema
|
||||
ORDER BY SUM(data_length + index_length) DESC;
|
||||
```
|
||||
|
||||
## 用户和权限管理
|
||||
|
||||
```sql
|
||||
-- 列出所有用户
|
||||
SELECT user, host FROM mysql.user;
|
||||
|
||||
-- 查看当前用户
|
||||
SELECT USER();
|
||||
SELECT CURRENT_USER();
|
||||
|
||||
-- 创建用户
|
||||
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
|
||||
CREATE USER 'username'@'%' IDENTIFIED BY 'password'; -- 允许任意主机
|
||||
|
||||
-- 修改用户密码
|
||||
ALTER USER 'username'@'localhost' IDENTIFIED BY 'new_password';
|
||||
SET PASSWORD FOR 'username'@'localhost' = PASSWORD('new_password'); -- MySQL 5.7
|
||||
SET PASSWORD FOR 'username'@'localhost' = 'new_password'; -- MySQL 8.0+
|
||||
|
||||
-- 删除用户
|
||||
DROP USER 'username'@'localhost';
|
||||
DROP USER IF EXISTS 'username'@'localhost';
|
||||
|
||||
-- 授予权限
|
||||
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE ON database_name.* TO 'username'@'localhost';
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION; -- 所有数据库
|
||||
|
||||
-- 授予特定表权限
|
||||
GRANT SELECT, INSERT ON database_name.table_name TO 'username'@'localhost';
|
||||
|
||||
-- 撤销权限
|
||||
REVOKE ALL PRIVILEGES ON database_name.* FROM 'username'@'localhost';
|
||||
|
||||
-- 查看用户权限
|
||||
SHOW GRANTS FOR 'username'@'localhost';
|
||||
|
||||
-- 刷新权限(修改权限后必须执行)
|
||||
FLUSH PRIVILEGES;
|
||||
```
|
||||
|
||||
## 表管理
|
||||
|
||||
```sql
|
||||
-- 列出所有表
|
||||
SHOW TABLES;
|
||||
SHOW TABLES FROM database_name;
|
||||
|
||||
-- 查看表结构
|
||||
DESCRIBE table_name;
|
||||
DESC table_name;
|
||||
SHOW COLUMNS FROM table_name;
|
||||
SHOW CREATE TABLE table_name; -- 查看建表语句
|
||||
|
||||
-- 查看表状态
|
||||
SHOW TABLE STATUS LIKE 'table_name';
|
||||
SHOW TABLE STATUS FROM database_name;
|
||||
|
||||
-- 查看表大小
|
||||
SELECT
|
||||
table_name AS 'Table',
|
||||
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS 'Size (MB)',
|
||||
table_rows AS 'Rows'
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'database_name'
|
||||
AND table_name = 'table_name';
|
||||
|
||||
-- 查看所有表大小
|
||||
SELECT
|
||||
table_schema AS 'Database',
|
||||
table_name AS 'Table',
|
||||
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS 'Size (MB)',
|
||||
table_rows AS 'Rows'
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'database_name'
|
||||
ORDER BY (data_length + index_length) DESC;
|
||||
|
||||
-- 查看表行数
|
||||
SELECT COUNT(*) FROM table_name;
|
||||
|
||||
-- 查看表引擎
|
||||
SHOW TABLE STATUS WHERE Name = 'table_name';
|
||||
|
||||
-- 修改表引擎
|
||||
ALTER TABLE table_name ENGINE = InnoDB;
|
||||
|
||||
-- 修改表字符集
|
||||
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- 重命名表
|
||||
RENAME TABLE old_table_name TO new_table_name;
|
||||
ALTER TABLE old_table_name RENAME TO new_table_name;
|
||||
|
||||
-- 清空表数据
|
||||
TRUNCATE TABLE table_name;
|
||||
|
||||
-- 删除表
|
||||
DROP TABLE table_name;
|
||||
DROP TABLE IF EXISTS table_name;
|
||||
```
|
||||
|
||||
## 索引管理
|
||||
|
||||
```sql
|
||||
-- 列出所有索引
|
||||
SHOW INDEX FROM table_name;
|
||||
SHOW INDEXES FROM table_name;
|
||||
SHOW KEYS FROM table_name;
|
||||
|
||||
-- 查看索引详细信息
|
||||
SELECT
|
||||
TABLE_NAME,
|
||||
INDEX_NAME,
|
||||
COLUMN_NAME,
|
||||
SEQ_IN_INDEX,
|
||||
INDEX_TYPE
|
||||
FROM information_schema.STATISTICS
|
||||
WHERE TABLE_SCHEMA = 'database_name'
|
||||
AND TABLE_NAME = 'table_name';
|
||||
|
||||
-- 创建索引
|
||||
CREATE INDEX idx_name ON table_name(column_name);
|
||||
|
||||
-- 创建唯一索引
|
||||
CREATE UNIQUE INDEX idx_name ON table_name(column_name);
|
||||
|
||||
-- 创建复合索引
|
||||
CREATE INDEX idx_name ON table_name(column1, column2);
|
||||
|
||||
-- 创建全文索引(MyISAM 或 InnoDB 5.6+)
|
||||
CREATE FULLTEXT INDEX idx_name ON table_name(column_name);
|
||||
|
||||
-- 创建前缀索引
|
||||
CREATE INDEX idx_name ON table_name(column_name(10));
|
||||
|
||||
-- 删除索引
|
||||
DROP INDEX idx_name ON table_name;
|
||||
ALTER TABLE table_name DROP INDEX idx_name;
|
||||
|
||||
-- 查看索引使用情况(需要启用 performance_schema)
|
||||
SELECT
|
||||
object_schema,
|
||||
object_name,
|
||||
index_name,
|
||||
count_star,
|
||||
sum_timer_wait / 1000000000000 AS sum_timer_wait_sec
|
||||
FROM performance_schema.table_io_waits_summary_by_index_usage
|
||||
WHERE object_schema = 'database_name'
|
||||
ORDER BY sum_timer_wait DESC;
|
||||
```
|
||||
|
||||
## 创建全文索引 ngram
|
||||
```sql
|
||||
CREATE TABLE table_name(
|
||||
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
|
||||
title VARCHAR (200),
|
||||
content TEXT,
|
||||
-- # 建立全文索引,同时使用ngram全文分析器
|
||||
FULLTEXT (title) WITH PARSER ngram
|
||||
) ENGINE = INNODB;
|
||||
|
||||
-- # 通过 alter table 的方式来添加
|
||||
ALTER TABLE table_name ADD FULLTEXT INDEX full_index_title(title) WITH PARSER ngram;
|
||||
|
||||
-- # 为title创建全文索引并且使用ngram全文解析器进行分词
|
||||
CREATE FULLTEXT INDEX full_index_title ON table_name(title) WITH PARSER `ngram`;
|
||||
|
||||
-- # 使用双引号把要搜素的词括起来,效果类似于like '%高性能%'
|
||||
select * ,(MATCH ( `title` ) AGAINST ( '"高性能"' ) )AS score
|
||||
from table_name
|
||||
where MATCH(title) AGAINST('"高性能"' IN BOOLEAN MODE) order by score Desc;
|
||||
|
||||
SELECT * FROM table_name WHERE MATCH(`title`) AGAINST('高性能' IN BOOLEAN MODE);
|
||||
|
||||
-- # 优化全文索引,减少索引碎片
|
||||
REPAIR TABLE table_name
|
||||
-- 或更轻量的优化(不锁表)
|
||||
OPTIMIZE TABLE table_name;
|
||||
|
||||
-- 若需匹配单字(如 “微”“信”)
|
||||
-- 临时设置(会话级)
|
||||
SET SESSION ngram_token_size = 1;
|
||||
-- 永久设置(修改 my.cnf 后重启 MySQL)
|
||||
-- ngram_token_size = 1
|
||||
```
|
||||
|
||||
## 查询和分析
|
||||
|
||||
```sql
|
||||
-- 查看执行计划
|
||||
EXPLAIN SELECT * FROM table_name WHERE condition;
|
||||
EXPLAIN FORMAT=JSON SELECT * FROM table_name WHERE condition;
|
||||
EXPLAIN FORMAT=TREE SELECT * FROM table_name WHERE condition; -- MySQL 8.0+
|
||||
|
||||
-- 分析表(更新统计信息)
|
||||
ANALYZE TABLE table_name;
|
||||
|
||||
-- 查看慢查询日志(需要启用)
|
||||
SHOW VARIABLES LIKE 'slow_query_log';
|
||||
SHOW VARIABLES LIKE 'long_query_time';
|
||||
|
||||
-- 查看当前正在执行的查询
|
||||
SHOW PROCESSLIST;
|
||||
SHOW FULL PROCESSLIST; -- 显示完整 SQL
|
||||
|
||||
-- 查看等待锁的查询
|
||||
SELECT
|
||||
r.trx_id waiting_trx_id,
|
||||
r.trx_mysql_thread_id waiting_thread,
|
||||
r.trx_query waiting_query,
|
||||
b.trx_id blocking_trx_id,
|
||||
b.trx_mysql_thread_id blocking_thread,
|
||||
b.trx_query blocking_query
|
||||
FROM information_schema.innodb_lock_waits w
|
||||
INNER JOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_trx_id
|
||||
INNER JOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_trx_id;
|
||||
|
||||
-- 终止查询
|
||||
KILL process_id;
|
||||
KILL QUERY process_id; -- 只终止查询,不断开连接
|
||||
```
|
||||
|
||||
## 备份和恢复
|
||||
|
||||
```bash
|
||||
# 备份数据库(SQL格式)
|
||||
mysqldump -u root -p -h 127.0.0.1 -P 3306 database_name > backup.sql
|
||||
|
||||
# 备份所有数据库
|
||||
mysqldump -u root -p -h 127.0.0.1 -P 3306 --all-databases > all_databases.sql
|
||||
|
||||
# 备份单个表
|
||||
mysqldump -u root -p -h 127.0.0.1 -P 3306 database_name table_name > table_backup.sql
|
||||
|
||||
# 仅备份结构(不包含数据)
|
||||
mysqldump -u root -p -h 127.0.0.1 -P 3306 --no-data database_name > schema.sql
|
||||
|
||||
# 仅备份数据(不包含结构)
|
||||
mysqldump -u root -p -h 127.0.0.1 -P 3306 --no-create-info database_name > data.sql
|
||||
|
||||
# 备份并压缩
|
||||
mysqldump -u root -p -h 127.0.0.1 -P 3306 database_name | gzip > backup.sql.gz
|
||||
|
||||
# 恢复数据库(从SQL文件)
|
||||
mysql -u root -p -h 127.0.0.1 -P 3306 database_name < backup.sql
|
||||
|
||||
# 恢复压缩的备份
|
||||
gunzip < backup.sql.gz | mysql -u root -p -h 127.0.0.1 -P 3306 database_name
|
||||
|
||||
# 备份时排除某些表
|
||||
mysqldump -u root -p -h 127.0.0.1 -P 3306 database_name --ignore-table=database_name.table1 --ignore-table=database_name.table2 > backup.sql
|
||||
|
||||
# 备份时添加锁表选项
|
||||
mysqldump -u root -p -h 127.0.0.1 -P 3306 --single-transaction --routines --triggers database_name > backup.sql
|
||||
```
|
||||
|
||||
## 性能监控
|
||||
|
||||
```sql
|
||||
-- 查看数据库连接数
|
||||
SHOW STATUS LIKE 'Threads_connected';
|
||||
SHOW STATUS LIKE 'Max_used_connections';
|
||||
|
||||
-- 查看最大连接数
|
||||
SHOW VARIABLES LIKE 'max_connections';
|
||||
|
||||
-- 查看当前配置
|
||||
SHOW VARIABLES;
|
||||
|
||||
-- 查看服务器状态
|
||||
SHOW STATUS;
|
||||
|
||||
-- 查看 InnoDB 状态
|
||||
SHOW ENGINE INNODB STATUS;
|
||||
|
||||
-- 查看表统计信息
|
||||
SELECT
|
||||
table_schema,
|
||||
table_name,
|
||||
table_rows,
|
||||
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS size_mb
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'database_name'
|
||||
ORDER BY table_rows DESC;
|
||||
|
||||
-- 查看缓存命中率
|
||||
SHOW STATUS LIKE 'Qcache%';
|
||||
SHOW VARIABLES LIKE 'query_cache%';
|
||||
|
||||
-- 查看慢查询统计
|
||||
SHOW STATUS LIKE 'Slow_queries';
|
||||
|
||||
-- 查看当前连接信息
|
||||
SHOW STATUS LIKE 'Threads%';
|
||||
|
||||
-- 查看 InnoDB 缓冲池状态
|
||||
SHOW STATUS LIKE 'Innodb_buffer_pool%';
|
||||
|
||||
-- 查看锁等待情况
|
||||
SELECT
|
||||
r.trx_id waiting_trx_id,
|
||||
r.trx_mysql_thread_id waiting_thread,
|
||||
TIMESTAMPDIFF(SECOND, r.trx_wait_started, NOW()) wait_time,
|
||||
r.trx_query waiting_query,
|
||||
l.lock_table,
|
||||
l.lock_mode,
|
||||
l.lock_type,
|
||||
b.trx_id blocking_trx_id,
|
||||
b.trx_mysql_thread_id blocking_thread,
|
||||
b.trx_query blocking_query
|
||||
FROM information_schema.innodb_lock_waits w
|
||||
INNER JOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_trx_id
|
||||
INNER JOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_trx_id
|
||||
INNER JOIN information_schema.innodb_locks l ON l.lock_id = w.requested_lock_id;
|
||||
```
|
||||
|
||||
## 维护操作
|
||||
|
||||
```sql
|
||||
-- 分析表(更新统计信息)
|
||||
ANALYZE TABLE table_name;
|
||||
|
||||
-- 优化表(整理碎片,回收空间)
|
||||
OPTIMIZE TABLE table_name;
|
||||
|
||||
-- 检查表
|
||||
CHECK TABLE table_name;
|
||||
|
||||
-- 修复表(仅 MyISAM)
|
||||
REPAIR TABLE table_name;
|
||||
|
||||
-- 查看表碎片情况
|
||||
SELECT
|
||||
table_schema,
|
||||
table_name,
|
||||
ROUND(data_free / 1024 / 1024, 2) AS data_free_mb,
|
||||
ROUND((data_length + index_length) / 1024 / 1024, 2) AS total_size_mb,
|
||||
ROUND(data_free / (data_length + index_length) * 100, 2) AS fragmentation_percent
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'database_name'
|
||||
AND data_free > 0
|
||||
ORDER BY data_free DESC;
|
||||
|
||||
-- 刷新表缓存
|
||||
FLUSH TABLES;
|
||||
|
||||
-- 刷新日志
|
||||
FLUSH LOGS;
|
||||
```
|
||||
|
||||
## 实用命令
|
||||
|
||||
```sql
|
||||
-- 查看当前时间
|
||||
SELECT NOW();
|
||||
SELECT CURRENT_TIMESTAMP();
|
||||
|
||||
-- 查看时区
|
||||
SELECT @@global.time_zone, @@session.time_zone;
|
||||
SHOW VARIABLES LIKE '%time_zone%';
|
||||
|
||||
-- 设置时区
|
||||
SET time_zone = '+08:00';
|
||||
SET GLOBAL time_zone = '+08:00';
|
||||
|
||||
-- 查看当前用户
|
||||
SELECT USER();
|
||||
SELECT CURRENT_USER();
|
||||
|
||||
-- 查看当前数据库
|
||||
SELECT DATABASE();
|
||||
|
||||
-- 查看 MySQL 版本
|
||||
SELECT VERSION();
|
||||
SHOW VARIABLES LIKE 'version%';
|
||||
|
||||
-- 查看服务器配置
|
||||
SHOW VARIABLES LIKE 'datadir'; -- 数据目录
|
||||
SHOW VARIABLES LIKE 'basedir'; -- 安装目录
|
||||
|
||||
-- 复制表结构
|
||||
CREATE TABLE new_table LIKE old_table;
|
||||
|
||||
-- 复制表数据
|
||||
INSERT INTO new_table SELECT * FROM old_table;
|
||||
|
||||
-- 复制表结构和数据
|
||||
CREATE TABLE new_table AS SELECT * FROM old_table;
|
||||
|
||||
-- 查看自增 ID 当前值
|
||||
SHOW TABLE STATUS WHERE Name = 'table_name';
|
||||
SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_schema = 'database_name' AND table_name = 'table_name';
|
||||
|
||||
-- 重置自增 ID
|
||||
ALTER TABLE table_name AUTO_INCREMENT = 1;
|
||||
|
||||
-- 查看字符集和排序规则
|
||||
SHOW VARIABLES LIKE 'character_set%';
|
||||
SHOW VARIABLES LIKE 'collation%';
|
||||
```
|
||||
|
||||
## 事务管理
|
||||
|
||||
```sql
|
||||
-- 开启事务
|
||||
START TRANSACTION;
|
||||
BEGIN;
|
||||
|
||||
-- 提交事务
|
||||
COMMIT;
|
||||
|
||||
-- 回滚事务
|
||||
ROLLBACK;
|
||||
|
||||
-- 设置自动提交
|
||||
SET autocommit = 0; -- 关闭自动提交
|
||||
SET autocommit = 1; -- 开启自动提交
|
||||
|
||||
-- 查看事务隔离级别
|
||||
SELECT @@transaction_isolation; -- MySQL 8.0+
|
||||
SELECT @@tx_isolation; -- MySQL 5.7
|
||||
|
||||
-- 设置事务隔离级别
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;
|
||||
|
||||
-- 查看当前事务状态
|
||||
SELECT * FROM information_schema.innodb_trx;
|
||||
```
|
||||
|
||||
## 常用 mysql 命令
|
||||
|
||||
```bash
|
||||
# 在 mysql 交互界面中
|
||||
SHOW DATABASES; # 列出所有数据库
|
||||
USE dbname; # 切换到数据库
|
||||
SHOW TABLES; # 列出当前数据库的所有表
|
||||
DESC table; # 显示表结构
|
||||
SHOW CREATE TABLE table; # 显示建表语句
|
||||
SHOW INDEX FROM table; # 显示索引
|
||||
SHOW PROCESSLIST; # 显示当前连接
|
||||
SHOW STATUS; # 显示服务器状态
|
||||
SHOW VARIABLES; # 显示系统变量
|
||||
SOURCE file.sql; # 执行 SQL 文件
|
||||
\. file.sql # 执行 SQL 文件(另一种方式)
|
||||
exit # 退出
|
||||
quit # 退出
|
||||
\q # 退出
|
||||
\c # 清除当前输入
|
||||
\G # 垂直显示结果
|
||||
\g # 执行命令(等同于 ;)
|
||||
\s # 显示状态信息
|
||||
\T # 开始记录日志
|
||||
\t # 停止记录日志
|
||||
\W # 显示警告
|
||||
\w # 不显示警告
|
||||
```
|
||||
|
||||
## 导入/导出
|
||||
|
||||
```sql
|
||||
-- 导出查询结果到文件(需要 FILE 权限)
|
||||
SELECT * FROM table_name
|
||||
INTO OUTFILE '/path/to/file.csv'
|
||||
FIELDS TERMINATED BY ','
|
||||
ENCLOSED BY '"'
|
||||
LINES TERMINATED BY '\n';
|
||||
|
||||
-- 从文件导入数据(需要 FILE 权限)
|
||||
LOAD DATA INFILE '/path/to/file.csv'
|
||||
INTO TABLE table_name
|
||||
FIELDS TERMINATED BY ','
|
||||
ENCLOSED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
IGNORE 1 ROWS; -- 忽略第一行(标题行)
|
||||
```
|
||||
|
||||
```bash
|
||||
# 使用 mysql 命令导出 CSV
|
||||
mysql -u root -p -h 127.0.0.1 -P 3306 database_name -e "SELECT * FROM table_name" > output.csv
|
||||
|
||||
# 使用 mysql 命令导出 CSV(带表头)
|
||||
mysql -u root -p -h 127.0.0.1 -P 3306 database_name -e "SELECT * FROM table_name" | sed 's/\t/,/g' > output.csv
|
||||
|
||||
# 使用 mysql 命令导入 CSV
|
||||
mysql -u root -p -h 127.0.0.1 -P 3306 database_name -e "LOAD DATA LOCAL INFILE '/path/to/file.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' IGNORE 1 ROWS"
|
||||
```
|
||||
|
||||
## 日志管理
|
||||
|
||||
```sql
|
||||
-- 查看日志相关配置
|
||||
SHOW VARIABLES LIKE 'log%';
|
||||
|
||||
-- 查看二进制日志
|
||||
SHOW BINARY LOGS;
|
||||
SHOW MASTER STATUS;
|
||||
|
||||
-- 查看错误日志位置
|
||||
SHOW VARIABLES LIKE 'log_error';
|
||||
|
||||
-- 查看慢查询日志配置
|
||||
SHOW VARIABLES LIKE 'slow_query%';
|
||||
SHOW VARIABLES LIKE 'long_query_time';
|
||||
|
||||
-- 启用慢查询日志
|
||||
SET GLOBAL slow_query_log = 'ON';
|
||||
SET GLOBAL long_query_time = 2; -- 设置慢查询阈值(秒)
|
||||
|
||||
-- 查看通用查询日志
|
||||
SHOW VARIABLES LIKE 'general_log%';
|
||||
SET GLOBAL general_log = 'ON';
|
||||
```
|
||||
|
||||
## 主从复制
|
||||
|
||||
```sql
|
||||
-- 查看主从状态
|
||||
SHOW MASTER STATUS;
|
||||
SHOW SLAVE STATUS; -- MySQL 8.0+ 使用 SHOW REPLICA STATUS
|
||||
|
||||
-- 查看从库状态
|
||||
SHOW REPLICA STATUS; -- MySQL 8.0+
|
||||
SHOW SLAVE STATUS\G; -- MySQL 5.7
|
||||
|
||||
-- 停止从库复制
|
||||
STOP SLAVE; -- MySQL 5.7
|
||||
STOP REPLICA; -- MySQL 8.0+
|
||||
|
||||
-- 启动从库复制
|
||||
START SLAVE; -- MySQL 5.7
|
||||
START REPLICA; -- MySQL 8.0+
|
||||
|
||||
-- 跳过错误(谨慎使用)
|
||||
SET GLOBAL sql_slave_skip_counter = 1; -- MySQL 5.7
|
||||
SET GLOBAL sql_replica_skip_counter = 1; -- MySQL 8.0+
|
||||
```
|
||||
Reference in New Issue
Block a user