mysql
MySQL中可以使用单引号或双引号来表示字符串
反引号屏蔽mysql保留字符
通配符:% _
mysql -u root -p <-h 127.0.0.1> # 登录 -p需要密码
SELECT DATABASE(); # 查看当前数据库
SELECT USER(); # 查看当前用户
SHOW DATABASES; # 查看所有数据库
SELECT user, host FROM mysql.user; # 查看所有用户
SHOW grants FOR 'user'@'host'; # 查看权限
SHOW TABLES; # 查看选定数据库的所有table
SHOW COLUMNS FROM <table>; # 查看table的列
DESCRIBE <table>; # 查看table的列
SOURCE <path/file.sql> # 运行sql文件
CREATE USER 'name'@'%' IDENTIFIED BY 'password';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'passwd';
GRANT ALL ON db1.* TO 'user'@'localhost';
索引
索引限制:https://dev.mysql.com/doc/refman/8.4/en/innodb-limits.html
SHOW INDEX FROM table;
CREATE INDEX title ON table ( title(40) ); # 前缀索引, 前40个字节
ubuntu
安装位置
执行文件 /usr/sbin/mysqld
配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf
数据文件 /var/lib/mysql
用mysql本地连接时出现报错:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决方法:添加sudo
数据迁移
/usr/bin/mysqldump -uroot -p --databases backend > ~/backend.sql
mysql -uroot -p < ~/backend.sql
主从复制
show master status \G
show replica status \G
start replica;
stop replica;
change master to master_host='172.16.3.10',master_user='replica',master_password='pass',master_log_file='',master_log_pos=pos
postgresql
PostgreSQL只接受单引号来表示字符串。
postgresql的同一个数据库的不同schema就是不同的命名空间
sudo -u postgres psql template1 # postgres用户登录template1数据库
ALTER USER postgres with encrypted password 'your_password';
\list # 查看所有数据库
\dt # 查看一个数据库中的所有表
ubuntu
sudo apt install postgresql # 安装
配置文件:/etc/postgresql/<version>/main