MySQL 命令行(转)

Posted 平心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 命令行(转)相关的知识,希望对你有一定的参考价值。

1、登录mysql

本地:mysql -u root -p, 回车后输入密码; 也可以p后不加空格,直接加密码。回车就登录了

远程:mysql -hxx.xx.xx.xx -u -pxxx

2、查看数据库:show databases;

3、连接数据库:use db_name;

4、查看数据表:show tables;

5、查询:select * from table_name where xxx and xxx;

6、当前选择的数据库:select database();

7、查询mysql版本:select version();

8、当前时间:select now();或select current_timestamp();

9、打印年月日:SELECT DAY/MONTH/YEAR(CURRENT_DATE);

     

10、打印字符:SELECT "I\'am danny.yao";

11、查看表结构:describe <表名>;

12、当前所有连接的详细情况:show full processlist;(没有full,只显示前100个连接)

13、查看状态:show status like \'%下面变量%\';

Aborted_clients 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量。 
Aborted_connects 尝试已经失败的MySQL服务器的连接的次数。 
Connections 试图连接MySQL服务器的次数。 
Created_tmp_tables 当执行语句时,已经被创造了的隐含临时表的数量。 
Delayed_insert_threads 正在使用的延迟插入处理器线程的数量。 
Delayed_writes 用INSERT DELAYED写入的行数。 
Delayed_errors 用INSERT DELAYED写入的发生某些错误(可能重复键值)的行数。 
Flush_commands 执行FLUSH命令的次数。 
Handler_delete 请求从一张表中删除行的次数。 
Handler_read_first 请求读入表中第一行的次数。 
Handler_read_key 请求数字基于键读行。 
Handler_read_next 请求读入基于一个键的一行的次数。 
Handler_read_rnd 请求读入基于一个固定位置的一行的次数。 
Handler_update 请求更新表中一行的次数。 
Handler_write 请求向表中插入一行的次数。 
Key_blocks_used 用于关键字缓存的块的数量。 
Key_read_requests 请求从缓存读入一个键值的次数。 
Key_reads 从磁盘物理读入一个键值的次数。 
Key_write_requests 请求将一个关键字块写入缓存次数。 
Key_writes 将一个键值块物理写入磁盘的次数。 
Max_used_connections 同时使用的连接的最大数目。 
Not_flushed_key_blocks 在键缓存中已经改变但是还没被清空到磁盘上的键块。 
Not_flushed_delayed_rows 在INSERT DELAY队列中等待写入的行的数量。 
Open_tables 打开表的数量。 
Open_files 打开文件的数量。 
Open_streams 打开流的数量(主要用于日志记载) 
Opened_tables 已经打开的表的数量。 
Questions 发往服务器的查询的数量。 
Slow_queries 要花超过long_query_time时间的查询数量。 
Threads_connected 当前打开的连接的数量。 
Threads_running 不在睡眠的线程数量。 
Uptime 服务器工作了多少秒。

14、看表注释,字段注释;

show create table table_name;
show full columns from table_name;
show table status;

 

mysql四个自带数据库介绍

1.    information_schema详细介绍:


   information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。
在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。


information_schema数据库表说明:


SCHEMATA表:提供了当前mysql实例中所有数据库的信息。是show databases的结果取之此表。


TABLES表:提供了关于数据库中的表的信息(包括视图)。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。是show tables from schemaname的结果取之此表。


COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是show columns from schemaname.tablename的结果取之此表。


STATISTICS表:提供了关于表索引的信息。是show index from schemaname.tablename的结果取之此表。


USER_PRIVILEGES(用户权限)表:给出了关于全程权限的信息。该信息源自mysql.user授权表。是非标准表。


SCHEMA_PRIVILEGES(方案权限)表:给出了关于方案(数据库)权限的信息。该信息来自mysql.db授权表。是非标准表。


TABLE_PRIVILEGES(表权限)表:给出了关于表权限的信息。该信息源自mysql.tables_priv授权表。是非标准表。


COLUMN_PRIVILEGES(列权限)表:给出了关于列权限的信息。该信息源自mysql.columns_priv授权表。是非标准表。


CHARACTER_SETS(字符集)表:提供了mysql实例可用字符集的信息。是SHOW CHARACTER SET结果集取之此表。


COLLATIONS表:提供了关于各字符集的对照信息。


COLLATION_CHARACTER_SET_APPLICABILITY表:指明了可用于校对的字符集。这些列等效于SHOW COLLATION的前两个显示字段。


TABLE_CONSTRAINTS表:描述了存在约束的表。以及表的约束类型。


KEY_COLUMN_USAGE表:描述了具有约束的键列。


ROUTINES表:提供了关于存储子程序(存储程序和函数)的信息。此时,ROUTINES表不包含自定义函数(UDF)。名为“mysql.proc name”的列指明了对应于INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列。


VIEWS表:给出了关于数据库中的视图的信息。需要有show views权限,否则无法查看视图信息。


TRIGGERS表:提供了关于触发程序的信息。必须有super权限才能查看该表


2.  mysql作用介绍:
  mysql:这个是mysql的核心数据库,类似于sql server中的master表,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。不可以删除,如果对mysql不是很了解,也不要轻易修改这个数据库里面的表信息。




3.  performance_schema作用介绍:


  mysql 5.5 版本 新增了一个性能优化的引擎: PERFORMANCE_SCHEMA这个功能默认是关闭的:
需要设置参数: performance_schema  才可以启动该功能,这个参数是静态参数,只能写在my.ini 中 不能动态修改。
先看看有什么东西吧:
mysql> use performance_schema;
Database changed
mysql> show tables ;
+----------------------------------------------+
| Tables_in_performance_schema                 |
+----------------------------------------------+
| cond_instances                               |
| events_waits_current                         |
| events_waits_history                         |
| events_waits_history_long                    |
| events_waits_summary_by_instance             |
| events_waits_summary_by_thread_by_event_name |
| events_waits_summary_global_by_event_name    |
| file_instances                               |
| file_summary_by_event_name                   |
| file_summary_by_instance                     |
| mutex_instances                              |
| performance_timers                           |
| rwlock_instances                             |
| setup_consumers                              |
| setup_instruments                            |
| setup_timers                                 |
| threads                                      |
+----------------------------------------------+
17 rows in set (0.00 sec)


这里的数据表分为几类:


1) setup table :  设置表,配置监控选项。


2) current events table : 记录当前那些thread 正在发生什么事情。


3) history table  发生的各种事件的历史记录表


4) summary table  对各种事件的统计表


5) 杂项表,乱七八糟表。


setup 表:


mysql> SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
    -> WHERE TABLE_SCHEMA = \'performance_schema\'
    -> AND TABLE_NAME LIKE \'setup%\';
+-------------------+
| TABLE_NAME        |
+-------------------+
| setup_consumers   |
| setup_instruments |
| setup_timers      |
+-------------------+




setup_consumers 描述各种事件


setup_instruments 描述这个数据库下的表名以及是否开启监控。


setup_timers   描述 监控选项已经采样频率的时间间隔




4.   test作用介绍:
  这个是安装时候创建的一个测试数据库,和它的名字一样,是一个完全的空数据库,没有任何表,可以删除。
 
 
 

技巧

1、MySQL保存boolean值时用1代表TRUE,0代表FALSE。boolean在mysql里的类型为tinyint(1)。MySQL里有四个常量:true,false,TRUE,FALSE分别代表1,0,1,0。

create table test

(
   id int primary key,
   bl boolean

)

这样是可以创建成功。查看建表后的语句会发现,mysql把它替换成tinyint(1)。在pojo里直接定义该属性为布尔值即可:private Boolean status

以上是关于MySQL 命令行(转)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL各命令行工具功能说明(转)

转 MYSQL 命令行大全 (简洁明了全面)

→ 如何用命令行进入mysql

MySQL mysqldump备份数据库命令行

(转)Kettle命令行

怎么用mysql命令行登录,进入mysql命令行