文章目录
pg
简单命令
列出数据库
\l
切换数据
\c 库名
列出表
\dt
查看表结构
\d 表名
按列展示查询结果
\x
select * from xxxtab;
删除表
drop table 表名;
create table calling_xxnfo_202106 (like calling_xxinfo_202012);
1 登录数据库
psql -h 127.0.0.1 -U 用户名 -d 库名
备份指定库
pg_dump -h 10.0.10.9 -U aiaas 库名 > xx.sql
导出单个表
pg_dump -h 127.0.0.1 -U 用户名 -d 库名 -t 表名 -f ./old.sql
恢复单个表
psql -h 127.0.0.1 -U 用户名 -d 库名 -f ./old.sql
仅导出insert 语句
pg_dump -U 用户名 -d 库名 -t 表名 -a --no-tablespaces --inserts -f insert.sql
导出部分查询内容为 insert 语句
先将查询结果放置在新表
create table export_table as
select id, name, city
from nyummy.cimory
where city = 'tokyo'
pg_dump --table=export_table --data-only --column-inserts my_database > data.sql
容器内登陆数据库
docker exec -it pgsql psql -h 127.0.0.1 -U 用户名 -d 库名
sql 中指定库名
select count(*) from 库名.public.表名;
pg_basebackup 物理备份的恢复
安装工具
sudo yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install postgresql10 -y
sudo yum install postgresql10-server -y
yum -y install postgresql10-contrib
解压备份文件到 /datta/
tar xzvf /data/xx.tar.gz -C /data/xx_data/
chown postgres:postgres -R /data/xx_data/
chmod 700 -R /data/xx_data/
修改监听地址
grep listen /data/xx_data/postgresql.conf
listen_addresses = '0.0.0.0' # what IP address(es) to listen on;
su postgres
/usr/pgsql-10/bin/pg_ctl -D /data/xx_data/ start
psql -h x.x.x.x -U op -d postgres
用户 的口令:
mysql
查看指定库下所有表的空间占用情况
select * from information_schema.`TABLES` where `TABLE_SCHEMA` = 'homer_data' order by `DATA_LENGTH` desc limit 10;
查看指定库 指定表 占用的空间
select concat(round(DATA_LENGTH/1024/1024,2),'MB') as data from information_schema.tables where TABLE_SCHEMA='homer_data' and TABLE_NAME='sip_capture_rest_20210630';
查看指定库占用的空间
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from information_schema.tables where TABLE_SCHEMA='homer_data';
查看所有看占用的空间
select concat(round(sum(DATA_LENGTH/1024/1024),2),'MB') as data from information_schema.tables;
select concat(round(sum(DATA_LENGTH/1024/1024/1024),2),'GB') as data from information_schema.tables;
容器安装的msyql 导出库
docker exec -i mysql mysqldump -uroot -p'root@123' dbname > dbname.sql
updat 语句
update table_anme set 字段1='xxx' where xxx=195;
查看索引
show index from table_name\G
待整理 concat
SELECT CONCAT('TRUNCATE TABLE ', temp.tn, ';')
FROM (SELECT table_name tn, RIGHT ( table_name, 8 )
tnd
FROM information_schema.TABLES
WHERE table_schema = 'homer_data' AND LENGTH( table_name ) > 8 ) temp
WHERE temp.tnd < ( CURRENT_DATE () - 1 );
SELECT CONCAT('DROP TABLE ', temp.tn, ';')
FROM (SELECT table_name tn, RIGHT ( table_name, 8 )
tnd
FROM information_schema.TABLES
WHERE table_schema = 'homer_data'
AND LENGTH( table_name ) > 8 ) temp
WHERE temp.tnd < ( CURRENT_DATE () - 1 );
update db.table set attrs=CONCAT(attrs,';areacode=xx') where address='xxx';
mysqldump
mysqldump -u用户名 -p密码 数据库名 表名 > xx.sql
导出指定的insert 语句
mysqldump --single-transaction -uroot -p'xxx' -t -w 'id=23' 库名 表名 > /tmp/txt.sql
mysql 导出为csv文件
select 字段1,字段2 from 表名 into outfile '输出路径';
导出多个库 带建库语句
mysqldump -uroot -p'密码' --databases 库名1 库名2 > xxx.sql
恢复库 无需建库
mysql -uroot -p'密码' < xxx.sql