| tables_priv |

| time_zone |

| time_zone_leap_second |

| time_zone_name |

| time_zone_transition |

| time_zone_transition_type |

| user |

+---------------------------+

23 rows in set (0.06 sec)

  1. 查看某个表的全部字段

mysql> desc slow_log;

+----------------+------------------+------+-----+-------------------+-----------------------------+

| Field | Type | Null | Key | Default | Extra |

+----------------+------------------+------+-----+-------------------+-----------------------------+

| start_time | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |

| user_host | mediumtext | NO | | NULL | |

| query_time | time | NO | | NULL | |

| lock_time | time | NO | | NULL | |

| rows_sent | int(11) | NO | | NULL | |

| rows_examined | int(11) | NO | | NULL | |

| db | varchar(512) | NO | | NULL | |

| last_insert_id | int(11) | NO | | NULL | |

| insert_id | int(11) | NO | | NULL | |

| server_id | int(10) unsigned | NO | | NULL | |

| sql_text | mediumtext | NO | | NULL | |

+----------------+------------------+------+-----+-------------------+-----------------------------+

11 rows in set (0.04 sec)

也可以使用两一条命令,显示比这个更详细,而且可以把建表语句全部列出来:

mysql> show create table slow_log\G;

*************************** 1. row ***************************

Table: slow_log

Create Table: CREATE TABLE slow_log (

start_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE

CURRENT_TIMESTAMP,

user_host mediumtext NOT NULL,

query_time time NOT NULL,

lock_time time NOT NULL,

rows_sent int(11) NOT NULL,

rows_examined int(11) NOT NULL,

db varchar(512) NOT NULL,

last_insert_id int(11) NOT NULL,

insert_id int(11) NOT NULL,

server_id int(10) unsigned NOT NULL,

sql_text mediumtext NOT NULL

) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'

1 row in set (0.01 sec)

  1. 查看当前是哪个用户

mysql> select user();

+----------------+

| user() |

+----------------+

| root@localhost |

+----------------+

1 row in set (0.00 sec)

  1. 查看当前所使用数据库

mysql> select database();

+------------+

| database() |

+------------+

| mysql |

+------------+

1 row in set (0.01 sec)

  1. 创建一个新库

mysql> create database db1;

Query OK, 1 row affected (0.05 sec)

  1. 创建一个新表

mysql> use db1;

Database changed

mysql> create table t1 (id int(4), name char(40));

Query OK, 0 rows affected (0.02 sec)

要注意的是,字段名需要用反引号括起来。

  1. 查看当前数据库版本

mysql> select version();

+------------+

| version() |

+------------+

| 5.1.40-log |

+------------+

1 row in set (0.01 sec)

  1. 查看当前mysql状态

mysql> show status;

+-----------------------------------+----------+

| Variable_name | Value |

+-----------------------------------+----------+

| Aborted_clients | 0 |

| Aborted_connects | 5 |

| Binlog_cache_disk_use | 0 |

| Binlog_cache_use | 0 |

| Bytes_received | 303 |

| Bytes_sent | 7001 |

由于内容太长,阿铭没有全部列出来,如果有兴趣可以网上找资料查一下每一行的含义。

  1. 查看mysql的参数

mysql> show variables;

+-----------------------------------------+---------------------+

| Variable_name | Value |

+-----------------------------------------+---------------------+

| auto_increment_increment | 1 |

| auto_increment_offset | 1 |

| autocommit | ON |

| automatic_sp_privileges | ON |

| back_log | 50 |

| basedir | /usr/local/mysql/ |

限于篇幅,阿铭省略了很多参数没有显示,其中很多参数都是可以在/etc/my.cnf中定义的,并且有部分参数是可以在线编辑的。

  1. 修改mysql的参数

mysql> show variables like 'max_connect%';

+--------------------+-------+

| Variable_name | Value |

+--------------------+-------+

| max_connect_errors | 10 |

| max_connections | 151 |

+--------------------+-------+

2 rows in set (0.00 sec)

mysql> set global max_connect_errors = 1000;

Query OK, 0 rows affected (0.01 sec)

mysql> show variables like 'max_connect_errors';

+--------------------+-------+

| Variable_name | Value |

+--------------------+-------+

| max_connect_errors | 1000 |

+--------------------+-------+

1 row in set (0.01 sec)

在mysql命令行, “%” 类似于shell下的 *, 表示万能匹配。使用 “set global” 可以临时修改某些参数,但是重启mysqld服务后还会变为原来的,所以要想恒久生效,需要在配置文件 my.cnf 中定义。

  1. 查看当前mysql服务器的队列

这个在日常的管理工作中使用最为频繁,因为使用它可以查看当前mysql在干什么,可以发现是否有锁表:

mysql> show processlist;

+----+------+-----------+------+---------+------+-------+------------------+

| Id | User | Host | db | Command | Time | State | Info |

+----+------+-----------+------+---------+------+-------+------------------+

| 13 | root | localhost | db1 | Query | 0 | NULL | show processlist |

+----+------+-----------+------+---------+------+-------+------------------+

1 row in set (0.01 sec)

  1. 创建一个普通用户并授权

mysql> grant all on . to user1 identified by '123456';

Query OK, 0 rows affected (0.01 sec)

all 表示所有的权限(读、写、查询、删除等等操作), . 前面的 * 表示所有的数据库,后面的 * 表示所有的表,identified by 后面跟密码,用单引号括起来。这里的user1指的是localhost上的user1,如果是给网络上的其他机器上的某个用户授权则这样:

mysql> grant all on db1.* to 'user2'@'10.0.2.100' identified by '111222';

Query OK, 0 rows affected (0.01 sec)

用户和主机的IP之间有一个@,另外主机IP那里可以用%替代,表示所有主机,例如:

mysql> grant all on db1.* to 'user3'@'%' identified by '231222';

Query OK, 0 rows affected (0.00 sec)

一些常用的sql

  1. 查询语句

mysql> select count(*) from mysql.user;

+----------+

| count(*) |

+----------+

| 8 |

+----------+

1 row in set (0.00 sec)

mysql.user表示mysql库的user表;count(*)表示表中共有多少行。

mysql> select * from mysql.db;

这个用来表示查询mysql库的db表中的所有数据,也可以查询单个字段或者多个字段:

mysql> select db from mysql.db;

mysql> select db,user from mysql.db;

同样,在查询语句中可以使用万能匹配 “%”

mysql> select * from mysql.db where host like ‘10.0.%’;

  1. 插入一行

mysql> insert into db1.t1 values (1, 'abc');

Query OK, 1 row affected (0.02 sec)

mysql> select * from db1.t1;

+------+------+

| id | name |

+------+------+

| 1 | abc |

+------+------+

1 row in set (0.00 sec)

  1. 更改表的某一行

mysql> update db1.t1 set name='aaa' where id=1;

Query OK, 1 row affected (0.01 sec)

Rows matched: 1 Changed: 1 Warnings: 0

mysql> select * from db1.t1;

+------+------+

| id | name |

+------+------+

| 1 | aaa |

+------+------+

1 row in set (0.00 sec)

  1. 清空表数据

mysql> truncate table db1.t1;

Query OK, 0 rows affected (0.01 sec)

mysql> select count(*) from db1.t1;

+----------+

| count(*) |

+----------+

| 0 |

+----------+

1 row in set (0.00 sec)

  1. 删除表

mysql> drop table db1.t1;

Query OK, 0 rows affected (0.00 sec)

  1. 删除数据库

mysql> drop database db1;

Query OK, 0 rows affected (0.02 sec)

mysql数据库的备份与恢复

备份:

[root@localhost ~]# mysqldump -uroot -p'yourpassword' mysql >/tmp/mysql.sql

最后

经过日积月累, 以下是小编归纳整理的深入了解Java虚拟机文档,希望可以帮助大家过关斩将顺利通过面试。 由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。

由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!