📒 数据库运维¶
MySQL¶
| program | description | 
|---|---|
mysql | 
command-line client | 
mysqld | 
server daemon | 
mysqladmin | 
server administration | 
mysqldump | 
backup and restore | 
安装¶
- 安装后首先查看配置文件如 
/etc/mysql,了解如何访问、日志位置。如果之后的过程中mysqld没有期望的输出,一般是放到日志去了。 - 初始化:可选择要不要生成随机密码,密码会在日志中。使用 Docker 部署时也会在日志中生成随机密码。
 
mysqld --initialize
mysql -u root -p
mysqld --initialize-insecure
mysql -u root --skip-password
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
- 修改配置文件后检查:
 
root默认认证方式似乎是auth_plugin而不是密码,初次安装后一般都连接不上。可以使用sudo mysql进入(这不需要密码),然后执行下面的命令修改密码为root:
使用¶
- 连接命令:
mysql-u root指定用户-p要求密码--socket /var/run/mysqld/mysqld.sock可能找不到默认的 socket 文件,此时需要查询journalctl mysql找到
 - 使用 MySQL WorkBench 提供 GUI 操作界面
 
维护¶
- 基本维护命令:
 
SHOW DATABASES; TABLES; STATUS;
SHOW CREATE DATABASE some_db; TABLE some_table;
SHOW GRANTS; ERORRS; WARNINGS;
DESCRIBE some_table; SHOW COLUMNS FROM some_table;
USE some_db;
HELP some_command;
- 注释:
--开头 - 如果只需查看某个信息但它太长了,可以使用 
\G结尾,这样会以列的形式显示。比如查看SHOW CREATE TABLE some_table\G: 
mysql> show create table orders \G
*************************** 1. row ***************************
       Table: orders
Create Table: CREATE TABLE `orders` (
  `order_num` int NOT NULL AUTO_INCREMENT,
  `order_date` datetime NOT NULL,
  `cust_id` int NOT NULL,
  PRIMARY KEY (`order_num`),
  KEY `fk_orders_customers` (`cust_id`),
  CONSTRAINT `fk_orders_customers` FOREIGN KEY (`cust_id`) REFERENCES `customers` (`cust_id`)
) ENGINE=InnoDB AUTO_INCREMENT=20010 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
1 row in set (0.00 sec)
PostgreSQL¶
Quote
- PostgreSQL: Downloads
 - 推荐阅读:Practical SQL : a beginner's guide to storytelling with data / Anthony DeBarros.
 
部署¶
- 服务端:参考 postgres - Official Image | Docker Hub
 - 
客户端:
选项 描述 -hHost -pPort -UUser  
查询技巧¶
- 垂直布局:使用 
\x切换,使用\x\g\x一次性切换并执行查询。