MySQL常用命令
一、数据库查询
1.查看当前服务器所有的库:
Mysql> SHOW DATABASES; //列出当前Mysql中包含的库,经过初始化后的MySQL服务器,默认建立了三个库:test、mysql和information_schema(其中mysql库中包含了用户认证相关的表)
设置新的最大连接数为200:
mysql> set GLOBAL max_connections=200
显示系统中正在运行的所有进程,也就是当前正在执行的查询:
mysql> show processlist
大多数用户可以查看他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码。
查看当前最大连接数:
mysqladmin -uusername -ppassword variables |find "max_con"
显示create database 语句是否能够创建指定的数据库:
show create database database_name;
显示create database 语句是否能够创建指定的数据库
show create table table_name;
2.查看当前库中所有的表:
Mysql> use cur_datebase; //切换到使用的库
Mysql> SHOW TABLES; //列出所有的表
Mysql数据库的数据文件默认存放在/usr/local/mysql/var/目录下,每个数据库对应一个子目录,用于存储数据表文件;每一个数据表对应为三个文件,后缀名分别为”.frm”” .MYD ”” .MYI ”。
查整个库的状态:
Mysql>select concat(truncate(sum(data_length)/1024/1024,2),'MB') as data_size, concat(truncate(sum(max_data_length)/1024/1024,2),'MB') as max_data_size, concat(truncate(sum(data_free)/1024/1024,2),'MB') as data_free, concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size from information_schema.tables where TABLE_SCHEMA ='databasename';
查单表:
select concat(truncate(sum(data_length)/1024/1024,2),'MB') as data_size, concat(truncate(sum(max_data_length)/1024/1024,2),'MB') as max_data_size, concat(truncate(sum(data_free)/1024/1024,2),'MB') as data_free, concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size from information_schema.tables where TABLE_NAME = ' 'tablename';
详细信息可以用:
show table status from 库名;
如果已经使用过“use 库名"的命令,使用show table status是直接查的当前库
显示数据库中所有存储的存储过程基本信息, 包括所属数据库,存储过程名称,创建时间等:
show procedure status ;
显示某一个存储过程的详细信息
show create procedure sp_name;
3.查看表结构:
Mysql> describe cur_database.cur_table; 或 desc cur_database.cur_table;
等同于:
Mysql> use cur_database;
Mysql> describe cur_table;
显示表中列名称:
Mysql>show columns from table_name from database_name;
或show columns from database_name.table_name;
查看索引状态:
show index from 库名
4.查看用户授权:SHOW GRANTS FOR'USERNAME'@'HOST'
mysql> show grants for 'jerry'@'%'; -----查看创建用户的信息
show grants for root@localhost;
显示服务器所支持的不同权限
Mysql>show privileges;
5.查看服务器所支持的字符集:
mysql> show character set; -----查看当前服务器所支持的字符集
6.查看排序规则:
mysql> show collation; -----查看排序规则
7.查看数据库的所有引擎:
mysql> show engines; -----查看数据库中的所有引擎
查看默认的搜索引擎:
mysql>show variables like '%storage_engine%';
查看某个表用的什么引擎
mysql>show create table 表名;
显示innoDB存储引擎的状态
Mysql>show innodb status;
显示安装后的可用存储引擎和默认引擎
Mysql>show [storage] engines;
8.查看二进制日志数目
mysql> show master logs;
显示BDB存储引擎的日志
Mysql> show logs;
确认日志是否启用
mysql>show variables like 'log_bin';
查看当前的二进制日志
mysql> show master status;
看二进制日志文件
shell>mysqlbinlog mail-bin.000001 或者shell>mysqlbinlog mail-bin.000001 | tail
查看从某一段时间到某一段时间的二进制日志
mysqlbinlog --start-datetime='2008-01-19 00:00:00' --stop-datetime='2008-01-30 00:00:00' /var/lib/mysql/mysql-bin.000006 > mysqllog1.log
显示最后一个执行的语句所产生的错误、警告和通知
Mysql> show warnings;
显示最后一个执行语句所产生的错误
Mysql>show errors;
9.查看表的状态信息:
show table status; 显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间
mysql> show table status like 'user'; -----查看一张表的状态信息(横向显示的)
mysql> show table status like 'user'\G: -----查看一张表的状态信息(纵向显示)
SHOW TABLE STATUS会返回以下字段:
• Name 表的名称。
• Engine 表的存储引擎。在MySQL 4.1.2之前,本值被标记为Type。
• Version 表的.frm文件的版本号。
• Row_format 行存储格式(Fixed,Dynamic,Compressed,Redundant,Compact)。InnoDB表的格式被报告为Redundant或Compact。
• Rows 行的数目。部分存储引擎,如MyISAM,存储精确的数目。对于其它存储引擎,比如InnoDB,本值是一个大约的数,与实际值相差可达40到50%。在这些情况下,使用SELECT COUNT(*)来获得准确的数目。对于在INFORMATION_SCHEMA数据库中的表,Rows值为NULL。
• Avg_row_length 平均的行长度。
• Data_length 数据文件的长度。
• Max_data_length 数据文件的最大长度。如果给定了数据指针的大小,这是可以被存储在表中的数据的字节总数。mysql5以后的版本所能支持的最大存储容量是非常大的,这时表的最大存储容量主要受限于OS了。
• Index_length 索引文件的长度。
• Data_free 被整序,但是未使用的字节的数目。
• Auto_increment 下一个AUTO_INCREMENT值。
• Create_time 什么时候表被创建。
• Update_time 什么时候数据文件被最后一次更新。
• Check_time 什么时候表被最后一次检查。不是所有的存储引擎此时都更新,在此情况下,值为NULL。
• Collation 表的字符集和整序。
• Checksum 活性校验和值。
• Create_options 和CREATE TABLE同时使用的额外选项。
• Comment 创建表时使用的评注(或者有关为什么MySQL可以访问表信息的说明)。
10.查看状态变量的值:
mysql> SHOW STATUS;
检查某几个状态变量:
mysql> SHOW STATUS LIKE ‘[匹配模式]’; ( 可以使用%、?等 )
关于状态变量的解释:http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html#server-status-variables
查看系统变量及其值:
Mysql> SHOW VARIABLES;
关于系统变量:http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html#server-system-variables
使用MySQL自带的mysqladmin 工具查看status,使用以下命令
mysqladmin -uroot –password=’password’ status
显示的结果如下:
Uptime: 87117 Threads: 1 Questions: 5481626 Slow queries: 16 Opens: 2211 Flush tables: 1 Open tables: 512 Queries per second avg: 62.923
另外可以添加 -i 5 参数,让其每五秒自动刷新之。
mysqladmin -uroot –password=’password’ status -i 5
同样的可以使用mysqladmin -uroot –password=’password’ extended-status来查看更多的MySQL运行信息,这种方式和第一种查看的信息基本一样。
查看mysql版本:
select version();
11.查看当前正在进行的进程:(对于有锁表等情况的排查很有用处。一般情况下,打开MySQL的慢查询记录同样有利于排查。)
Mysql>SHOW PROCESSLIST;
显示当前已经被打开的表列表
Mysql>SHOW OPEN TABLES
12.连接MySQL
格式: mysql -h主机地址 -u用户名 -p用户密码
例:连接到本机上的MYSQL。
在打开的DOS窗口中进入mysql目录 bin,键入命令mysql –u root -p回车,后提示输入密码,即可进入到MYSQL,MYSQL的提示符是:mysql>。
例:连接到远程主机上的MYSQL。假设远程主机的IP为:172.168.10.78,用户名为root,密码为12345,键入以下命令:
mysql -h172.168.10.78 -uroot -p12345
退出MYSQL命令: exit (回车)。
设置定界符:mysql> delimiter //; ---- 之后命令结束需使用//
如果你决定不想执行正在输入过程中的一个命令,输入\c取消它 :
见: