外观
TDSQL 内置命令参考
连接与会话管理命令
1. 连接数据库
sql
mysql -h hostname -P port -u username -p参数说明:
-h: 指定TDSQL实例的主机名或IP地址-P: 指定TDSQL实例的端口号-u: 指定用户名-p: 提示输入密码
示例:
bash
mysql -h tdsql-instance -P 3306 -u root -p2. 显示当前连接信息
sql
STATUS;功能:显示当前连接的详细信息,包括连接ID、用户、数据库、服务器版本等。
3. 切换数据库
sql
USE database_name;功能:切换到指定的数据库。
示例:
sql
USE test;4. 显示当前数据库
sql
SELECT DATABASE();功能:显示当前正在使用的数据库。
5. 退出会话
sql
EXIT;或
sql
QUIT;功能:退出当前数据库会话。
数据库与表管理命令
1. 显示所有数据库
sql
SHOW DATABASES;功能:显示TDSQL实例中的所有数据库。
2. 创建数据库
sql
CREATE DATABASE database_name [CHARACTER SET charset_name] [COLLATE collation_name];参数说明:
database_name: 要创建的数据库名称CHARACTER SET: 指定数据库的字符集COLLATE: 指定数据库的排序规则
示例:
sql
CREATE DATABASE test_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;3. 删除数据库
sql
DROP DATABASE database_name;功能:删除指定的数据库及其所有表。
示例:
sql
DROP DATABASE test_db;4. 显示数据库中的所有表
sql
SHOW TABLES [FROM database_name];功能:显示指定数据库中的所有表。
示例:
sql
SHOW TABLES FROM test;5. 查看表结构
sql
DESCRIBE table_name;或
sql
SHOW COLUMNS FROM table_name;功能:显示表的列信息,包括列名、数据类型、约束等。
示例:
sql
DESCRIBE users;6. 查看表创建语句
sql
SHOW CREATE TABLE table_name;功能:显示创建表的SQL语句。
示例:
sql
SHOW CREATE TABLE users;7. 查看表索引
sql
SHOW INDEX FROM table_name;功能:显示表的索引信息。
示例:
sql
SHOW INDEX FROM users;数据查询与操作命令
1. 简单查询
sql
SELECT column1, column2 FROM table_name;功能:从表中查询指定列的数据。
示例:
sql
SELECT id, name FROM users;2. 查询所有列
sql
SELECT * FROM table_name;功能:查询表中的所有列。
示例:
sql
SELECT * FROM users;3. 带条件查询
sql
SELECT * FROM table_name WHERE condition;功能:根据条件查询数据。
示例:
sql
SELECT * FROM users WHERE age > 18;4. 插入数据
sql
INSERT INTO table_name (column1, column2) VALUES (value1, value2);功能:向表中插入一条数据。
示例:
sql
INSERT INTO users (name, age) VALUES ('John', 25);5. 更新数据
sql
UPDATE table_name SET column1 = value1 WHERE condition;功能:更新表中符合条件的数据。
示例:
sql
UPDATE users SET age = 26 WHERE name = 'John';6. 删除数据
sql
DELETE FROM table_name WHERE condition;功能:删除表中符合条件的数据。
示例:
sql
DELETE FROM users WHERE id = 1;7. 事务管理
sql
-- 开始事务
START TRANSACTION;
-- 执行SQL语句
INSERT INTO users (name, age) VALUES ('Alice', 30);
UPDATE users SET age = 31 WHERE name = 'Bob';
-- 提交事务
COMMIT;
-- 或回滚事务
-- ROLLBACK;功能:管理数据库事务。
权限管理命令
1. 创建用户
sql
CREATE USER 'username'@'host' IDENTIFIED BY 'password';功能:创建新用户。
示例:
sql
CREATE USER 'test_user'@'%' IDENTIFIED BY 'password123';2. 授予权限
sql
GRANT privileges ON database_name.table_name TO 'username'@'host';功能:授予用户指定的权限。
示例:
sql
GRANT SELECT, INSERT ON test.* TO 'test_user'@'%';3. 撤销权限
sql
REVOKE privileges ON database_name.table_name FROM 'username'@'host';功能:撤销用户的指定权限。
示例:
sql
REVOKE INSERT ON test.* FROM 'test_user'@'%';4. 查看用户权限
sql
SHOW GRANTS FOR 'username'@'host';功能:显示用户的权限信息。
示例:
sql
SHOW GRANTS FOR 'test_user'@'%';5. 删除用户
sql
DROP USER 'username'@'host';功能:删除指定用户。
示例:
sql
DROP USER 'test_user'@'%';系统信息与状态命令
1. 显示服务器状态
sql
SHOW GLOBAL STATUS;功能:显示服务器的全局状态信息。
示例:
sql
SHOW GLOBAL STATUS LIKE 'Threads_connected';2. 显示系统变量
sql
SHOW GLOBAL VARIABLES;功能:显示服务器的全局系统变量。
示例:
sql
SHOW GLOBAL VARIABLES LIKE 'max_connections';3. 显示引擎状态
sql
SHOW ENGINE INNODB STATUS;功能:显示InnoDB引擎的详细状态信息。
4. 显示二进制日志信息
sql
SHOW BINARY LOGS;功能:显示服务器上的二进制日志文件列表。
5. 显示主服务器状态
sql
SHOW MASTER STATUS;功能:显示主服务器的状态,包括当前二进制日志文件名和位置。
6. 显示从服务器状态
sql
SHOW SLAVE STATUS\G功能:显示从服务器的复制状态。
性能监控与优化命令
1. 显示慢查询日志状态
sql
SHOW VARIABLES LIKE 'slow_query_log';功能:显示慢查询日志是否启用。
2. 设置慢查询日志阈值
sql
SET GLOBAL long_query_time = 1;功能:设置慢查询的时间阈值(秒)。
3. 显示进程列表
sql
SHOW PROCESSLIST;功能:显示当前正在运行的进程列表。
4. 杀死进程
sql
KILL process_id;功能:终止指定ID的进程。
示例:
sql
KILL 1234;5. 优化表
sql
OPTIMIZE TABLE table_name;功能:优化表,回收碎片空间。
示例:
sql
OPTIMIZE TABLE users;6. 分析表
sql
ANALYZE TABLE table_name;功能:分析表,更新统计信息。
示例:
sql
ANALYZE TABLE users;7. 检查表
sql
CHECK TABLE table_name;功能:检查表的完整性。
示例:
sql
CHECK TABLE users;备份与恢复命令
1. 锁定表
sql
LOCK TABLES table_name [AS alias] lock_type [, table_name [AS alias] lock_type] ...;功能:锁定表,用于备份操作。
示例:
sql
LOCK TABLES users READ;2. 解锁表
sql
UNLOCK TABLES;功能:解锁所有表。
3. 导出表数据
sql
SELECT * INTO OUTFILE '/path/to/file.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' FROM table_name;功能:将表数据导出到文件。
示例:
sql
SELECT * INTO OUTFILE '/tmp/users.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' FROM users;4. 导入表数据
sql
LOAD DATA INFILE '/path/to/file.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';功能:从文件导入数据到表中。
示例:
sql
LOAD DATA INFILE '/tmp/users.csv' INTO TABLE users FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';复制管理命令
1. 启动复制
sql
START SLAVE;功能:启动从服务器的复制进程。
2. 停止复制
sql
STOP SLAVE;功能:停止从服务器的复制进程。
3. 重置复制
sql
RESET SLAVE;功能:重置从服务器的复制信息。
4. 配置主从复制
sql
CHANGE MASTER TO
MASTER_HOST='master_host',
MASTER_USER='repl_user',
MASTER_PASSWORD='repl_password',
MASTER_LOG_FILE='binlog.000001',
MASTER_LOG_POS=154;功能:配置从服务器的主服务器信息。
存储引擎命令
1. 显示支持的存储引擎
sql
SHOW ENGINES;功能:显示服务器支持的存储引擎。
2. 设置默认存储引擎
sql
SET GLOBAL default_storage_engine = InnoDB;功能:设置默认的存储引擎。
3. 查看表的存储引擎
sql
SHOW TABLE STATUS LIKE 'table_name';功能:显示表的存储引擎信息。
示例:
sql
SHOW TABLE STATUS LIKE 'users';缓存管理命令
1. 刷新查询缓存
sql
FLUSH QUERY CACHE;功能:刷新查询缓存。
2. 重置查询缓存
sql
RESET QUERY CACHE;功能:重置查询缓存,清除所有缓存的查询结果。
3. 刷新权限
sql
FLUSH PRIVILEGES;功能:刷新权限表,使新的权限设置生效。
4. 刷新日志
sql
FLUSH LOGS;功能:刷新日志文件,生成新的日志文件。
常见问题(FAQ)
Q1: 如何查看TDSQL版本?
A1: 可以使用以下命令查看TDSQL版本:
sql
SELECT VERSION();Q2: 如何查看当前用户?
A2: 可以使用以下命令查看当前用户:
sql
SELECT USER();Q3: 如何查看当前时间?
A3: 可以使用以下命令查看当前时间:
sql
SELECT NOW();Q4: 如何获取表的行数?
A4: 可以使用以下命令获取表的行数:
sql
SELECT COUNT(*) FROM table_name;Q5: 如何查看数据库的大小?
A5: 可以使用以下命令查看数据库的大小:
sql
SELECT table_schema AS 'Database', SUM(data_length + index_length) / 1024 / 1024 AS 'Size (MB)' FROM information_schema.tables GROUP BY table_schema;Q6: 如何查看表的大小?
A6: 可以使用以下命令查看表的大小:
sql
SELECT table_name AS 'Table', ROUND(((data_length + index_length) / 1024 / 1024), 2) AS 'Size (MB)' FROM information_schema.tables WHERE table_schema = 'database_name' ORDER BY (data_length + index_length) DESC;Q7: 如何查看慢查询日志的位置?
A7: 可以使用以下命令查看慢查询日志的位置:
sql
SHOW VARIABLES LIKE 'slow_query_log_file';Q8: 如何启用慢查询日志?
A8: 可以使用以下命令启用慢查询日志:
sql
SET GLOBAL slow_query_log = ON;Q9: 如何查看二进制日志的位置?
A9: 可以使用以下命令查看二进制日志的位置:
sql
SHOW VARIABLES LIKE 'log_bin_basename';Q10: 如何查看当前事务隔离级别?
A10: 可以使用以下命令查看当前事务隔离级别:
sql
SELECT @@GLOBAL.tx_isolation, @@SESSION.tx_isolation;命令使用注意事项
权限要求:某些命令需要特定的权限才能执行,如创建用户、授予权限等需要SUPER或ALL PRIVILEGES权限。
事务安全:在生产环境中执行修改数据的命令时,建议使用事务管理,确保数据的一致性。
性能影响:某些命令(如OPTIMIZE TABLE、ANALYZE TABLE)可能会对数据库性能产生影响,建议在业务低峰期执行。
日志记录:重要的操作建议记录到日志中,便于后续审计和排查问题。
版本差异:不同版本的TDSQL可能支持的命令和参数有所不同,建议参考对应版本的官方文档。
备份重要:在执行删除、修改等危险操作前,建议先备份相关数据,以防止数据丢失。
谨慎使用KILL命令:KILL命令会强制终止进程,可能导致数据不一致,建议谨慎使用。
定期清理:定期清理无用的日志文件和临时文件,释放磁盘空间。
监控命令执行时间:对于可能执行时间较长的命令,建议监控其执行时间,避免影响数据库性能。
遵循最佳实践:遵循TDSQL的最佳实践,合理使用命令,确保数据库的稳定运行。
