数据库:配置与维护¶
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