MySQL常用命令
1.mysql启动
/iddbs/mysql/bin/mysqld_safe --defaults-file=/iddbs/mysql/etc/my.cnf --user=user &
2.mysql关闭:
/iddbs/mysql/bin/mysqladmin --socket=/iddbs/data3306/mysql.sock -uroot -p shutdown
3.mysql登录:
/iddbs/mysql/bin/mysql --socket=/iddbs/data3306/mysql.sock -uroot -p
4.mysql查看用户/登陆方式/密码等
select user,host,password(5.7以后为authentication_string) from mysql.user
5.mysql创建用户:
create user 'suer'@'%' identified by 'xxxxxx';
6.mysql给用户授权:
grant all privileges on *.* to 'user'@'%' identified by 'xxxxxx';
7.mysql修改密码:
grant all privileges on *.* to 'root'@'%' identified by '' with grant option;
8.mysql刷新权限:
flush privileges;
9.mysql查看数据库/表:
show databases;
show tables;/show database.tables;
10.mysql查看表结构:
describe table;show columns from table;
11.查询数据:
select *(要查询的字段) from database.table where xx=xx;
12.查看最大连接数:
mysql> show variables like '%max_connections%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | 1000 |
+-----------------+-------+
1 row in set (0.00 sec)
13.设置最大连接数
set global max_connections=1000;
14.查看当前运行的所有事物
SELECT * FROM information_schema.INNODB_TRX\G
15.查询正在使用的表
show OPEN TABLES where in_use > 0;
+----------+-------+--------+-------------+
| Database | Table | In_use | Name_locked |
+----------+-------+--------+-------------+
| MyDB | test | 1 | 0 |
+----------+-------+--------+-------------+
1 row in set (0.00 sec)
#In_use
表当前被查询使用的次数。如果该数为零,则表是打开的,但是当前没有被使用。
#Name_locked
表名称是否被锁定。名称锁定用于取消表或对表进行重命名等操作
16.show status 查看状态
show status like ‘%下面变量%’;
项目 | Value |
---|---|
Aborted_clients | 由于客户没有正确关闭连接已经死掉,已经放弃的连接数量 |
Aborted_connects | 尝试已经失败的MySQL服务器的连接的次数。 |
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 | 服务器工作了多少秒。 |
17.查看每个数据库表数量
use information_schema
select table_schema,count(TABLE_NAME) FROM information_schema.TABLES group by table_schema order by 2;
18.查看库大小:
use information_schema
#查看各个库大小
select table_schema,concat(round(sum(data_length/1024/1024),2),'MB') as data from tables group by table_schema;
#查看所有数据的大小:
select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables;
select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables;
#查看指定库的大小:
select concat(round(sum(data_length/1024/1024),2),'MB') as data from tables where table_schema='xxxx(库名)';
19.查询某个库中每张表所占的容量大小(索引+数据)
use information_schema
select table_schema as '数据库',table_name as '表名',table_rows as '记录数',truncate(data_length/1024/1024, 2) as '数据容量(MB)',truncate(index_length/1024/1024, 2) as '索引容量(MB)'from information_schema.tables where table_schema='xxx' order by table_rows desc, index_length desc;
#xxx为所查询的库名