mongodb/mysq的常用sql

平时偶尔会用到数据库的常用命令,来进行实验或者测试,在这里简单整理一下。

mongodb

常用命令

help命令查看帮助

> help
 db.help()                    help on db methods
 db.mycoll.help()             help on collection methods
 sh.help()                    sharding helpers
 rs.help()                    replica set helpers
 help admin                   administrative help
 help connect                 connecting to a db help
 help keys                    key shortcuts
 help misc                    misc things to know
 help mr                      mapreduce

 show dbs                     show database names
 show collections             show collections in current database
 show users                   show users in current database
 show profile                 show most recent system.profile entries with time >= 1ms
 show logs                    show the accessible logger names
 show log [name]              prints out the last segment of log in memory, 'global' is default
 use <db_name>                set current database
 db.foo.find()                list objects in collection foo
 db.foo.find( { a : 1 } )     list objects in foo where a == 1
 it                           result of the last line evaluated; use to further iterate
 DBQuery.shellBatchSize = x   set default number of items to display on shell
 exit                         quit the mongo shell

切换/创建数据库

> use yourDB;

查看数据库/查看数据表

> show dbs;
local   0.078125GB
> use local;
switched to db local
> show tables;
startup_log

删除库

> db.dropDatabase();

复制数据库

> db.copyDatabase("local","test","127.0.0.1");
{ "ok" : 1 }
> show dbs;
test 0.078125GB
local   0.078125GB

查看当前使用的DBname

> db;
test
> db.getName()
test

查看当前库状态

> db.stats();
{
 "db" : "test",
 "collections" : 3,
 "objects" : 5,
 "avgObjSize" : 237.6,
 "dataSize" : 1188,
 "storageSize" : 10498048,
 "numExtents" : 3,
 "indexes" : 1,
 "indexSize" : 8176,
 "fileSize" : 67108864,
 "nsSizeMB" : 16,
 "dataFileVersion" : {
 "major" : 4,
 "minor" : 5
 },
 "ok" : 1
}

查看当前库链接地址

> db.getMongo();
connection to 127.0.0.1

插入数据(insert)

> db.dshowing.insert({_id:10,name:"dshowing",age:18});

查询文档

> db.dshowing.find()
{ "_id" : 10, "name" : "dshowing", "age" : 18 }
> db.dshowing.find().pretty()
{ "_id" : 10, "name" : "dshowing", "age" : 18 }
> db.dshowing.findOne()
{ "_id" : 10, "name" : "dshowing", "age" : 18 }

删除文档

> db.dshowing.remove()
> db.dshowing.findOne()
null

mysql

常用命令

显示数据库

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| dshowing           |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

显示数据表

mysql> USE dshowing;
Database changed
mysql> SHOW TABLES;
Empty set (0.00 sec)

显示数据表结构

mysql> USE mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> DESCRIBE db;
+-----------------------+---------------+------+-----+---------+-------+
| Field                 | Type          | Null | Key | Default | Extra |
+-----------------------+---------------+------+-----+---------+-------+
| Host                  | char(60)      | NO   | PRI |         |       |
| Db                    | char(64)      | NO   | PRI |         |       |
| User                  | char(32)      | NO   | PRI |         |       |
| Select_priv           | enum('N','Y') | NO   |     | N       |       |
| Insert_priv           | enum('N','Y') | NO   |     | N       |       |
| Update_priv           | enum('N','Y') | NO   |     | N       |       |
| Delete_priv           | enum('N','Y') | NO   |     | N       |       |
| Create_priv           | enum('N','Y') | NO   |     | N       |       |
| Drop_priv             | enum('N','Y') | NO   |     | N       |       |
| Grant_priv            | enum('N','Y') | NO   |     | N       |       |
| References_priv       | enum('N','Y') | NO   |     | N       |       |
| Index_priv            | enum('N','Y') | NO   |     | N       |       |
| Alter_priv            | enum('N','Y') | NO   |     | N       |       |
| Create_tmp_table_priv | enum('N','Y') | NO   |     | N       |       |
| Lock_tables_priv      | enum('N','Y') | NO   |     | N       |       |
| Create_view_priv      | enum('N','Y') | NO   |     | N       |       |
| Show_view_priv        | enum('N','Y') | NO   |     | N       |       |
| Create_routine_priv   | enum('N','Y') | NO   |     | N       |       |
| Alter_routine_priv    | enum('N','Y') | NO   |     | N       |       |
| Execute_priv          | enum('N','Y') | NO   |     | N       |       |
| Event_priv            | enum('N','Y') | NO   |     | N       |       |
| Trigger_priv          | enum('N','Y') | NO   |     | N       |       |
+-----------------------+---------------+------+-----+---------+-------+
22 rows in set (0.00 sec)

建立数据库

mysql> CREATE DATABASE dshowing;
Query OK, 1 row affected (0.00 sec)

删除数据库

mysql> DROP DATABASE dshowing;
Query OK, 0 rows affected (0.00 sec)

建立数据表

mysql> CREATE TABLE test(name varchar(20),age int(2));
Query OK, 0 rows affected (0.03 sec)

删除数据表

mysql> DROP TABLE test;
Query OK, 0 rows affected (0.00 sec)

向表中插入数据

mysql> INSERT INTO test VALUES ("dshowing",18);
Query OK, 1 row affected (0.02 sec)

查看表数据

mysql> SELECT * FROM test;
+----------+------+
| name     | age  |
+----------+------+
| dshowing |   18 |
+----------+------+
1 row in set (0.00 sec)

更新表数据

mysql> UPDATE test SET name="dshowing01",age=23;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> SELECT * FROM test;
+------------+------+
| name       | age  |
+------------+------+
| dshowing01 |   23 |
+------------+------+
1 row in set (0.00 sec)

清空表数据

mysql> DELETE FROM test;
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM test;
Empty set (0.00 sec)

显示当前数据库名

mysql> SELECT DATABASE();
+------------+
| DATABASE() |
+------------+
| mysql      |
+------------+
1 row in set (0.00 sec)

显示当前user

mysql> SELECT USER();
+----------------+
| USER()         |
+----------------+
| root@localhost |
+----------------+
1 row in set (0.00 sec)

更改MySQL的root密码

SET PASSWORD

mysql> SET PASSWORD FOR 'root'@'localhost'=PASSWORD('dshowing');
Query OK, 0 rows affected, 1 warning (0.01 sec)

UPDATE

mysql> UPDATE mysql.user SET authentication_string=PASSWORD('dshowing') WHERE user='root';
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 1

丢失root密码后:
通过跳过身份认证来进行密码修改。按照网上的教程使用mysqld_safe --skip-grant-tables总是出现问题,最后发现可以在配置文件里进行修改。(我的环境是Debian 15 + Mysql 5.7.18-1)
修改配置文件,在[mysqld]下添加skip-grant-tables

root@dshowing-PC:~# vim /etc/mysql/mysql.conf.d/mysqld.cnf
.
..
...
....
[mysqld]
#
# * Basic Settings
#
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
lc-messages-dir = /usr/share/mysql
skip-grant-tables
skip-external-locking
....
...
..
.

重启mysql服务,进入MySQL,输入密码时直接回车进入

root@dshowing-PC:~# service mysql restart 
root@dshowing-PC:~# mysql -u root -p 
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.18-1 (Debian)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

使用UPDATE语句修改密码

mysql> USE mysql;
Database changed
mysql> UPDATE user SET authentication_string=PASSWORD('dshowingggg') WHERE user='root';
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 1

注释掉skip-grant-tables配置行,重启服务并验证

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容

  • 1.A simple master-to-slave replication is currently being...
    Kevin关大大阅读 5,834评论 0 3
  • 什么是数据库? 数据库是存储数据的集合的单独的应用程序。每个数据库具有一个或多个不同的API,用于创建,访问,管理...
    chen_000阅读 4,005评论 0 19
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 4,867评论 0 9
  • 1.导出整个数据库 mysqldump -u 用户名 -p –default-character-set=lati...
    往你头上敲三下阅读 590评论 1 10
  • 下载安装好 MySQL 以后就会出现在系统偏好设置里, 双击进入设置界面,此时 MySQL 还未启动 点击 Sta...
    顾顾314阅读 712评论 0 0