连接数据库

mysql -h [host ip] -u[user] -p[pwd] -P[port]

显示当前数据库列表

SHOW DATABASES;

显示数据库中的数据表

SHOW TABLES;

显示数据表的结构

DESCRIBE 表名;desc 表名;

一条一条数据显示

SELECT * FROM user \G;

导入.sql文件命令

SOURCE d:/mysql.sql;

命令行修改root密码

UPDATE mysql.user SET password=PASSWORD('新密码') WHERE User='root';
FLUSH PRIVILEGES;

[5.7版本]
UPDATE mysql.user SET authentication_string=PASSWORD('root') WHERE User='root';

显示use的数据库名

SELECT DATABASE();

显示当前的user

SELECT USER();

导出整个数据库

导出文件默认是存在mysql\bin目录下

mysqldump -u [用户名] -p [数据库名] > [导出的文件名]

导出一个表

mysqldump -u [用户名] -p [数据库名] [表名]> [导出的文件名]

导出一个数据库结构

mysqldump -u user_name -p -d –add-drop-table database_name > outfile_name.sql
-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table

mysql执行结果保存到文件

mysql -h [host] -P[port] -u[user] -p[pwd] -se "select distinct(refresh_token) from auth_refresh_token;" [database]  > a.txt

备份数据库

mysqldump -uroot -p test_db > test_db.sql

忘记密码

在“my.cnf”或“my.ini”文件的“mysqld”配置段添加“skip-grant-tables”,然后重新启动mysql即可登录修改root密码。

查看编码

show variables like “char%”

查看连接数

最大连接数

show variables like ‘%max_connection%’;

mysql> show status like  'Threads%';

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

| Variable_name     | Value |

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

| Threads_cached    | 32    |

| Threads_connected | 10    |

| Threads_created   | 50    |

| Threads_rejected  | 0     |

| Threads_running   | 1     |

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

5 rows in set (0.00 sec)

Threads_connected:这个数值指的是打开的连接数.

Threads_running:这个数值指的是激活的连接数,这个数值一般远低于connected数值.

Threads_connectedshow processlist 结果相同,表示当前连接数。准确的来说, Threads_running 是代表当前并发数

mysql status

mysql> 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 服务器工作了多长时间,单位秒。 

Ubuntu 安装mysql

$ sudo apt-get install mysql-server
$ sudo apt-get install mysql-client
$ sudo apt-get install libmysqlclient-dev

忘记root密码

sudo vi /etc/mysql/my.cnf,在[mysqld]段中加入一行“skip-grant-tables”

sudo service mysql restart,重启mySQL服务

sudo mysql -u root -p mysql,用空密码进入mysql管理命令行

(进入mysql,或者用use mysql指令)

> use mysql;

> update user set authentication_string=PASSWORD("这里输入你要改的密码") where User='root'; #更改密码
> update user set plugin="mysql_native_password"; #如果没这一行可能也会报一个错误,因此需要运行这一行

> flush privileges; #更新所有操作权限
> quit;

sudo vim /etc/mysql/my.cnf,把刚才加入的那一行“skip-grant-tables”注释或删除

sudo service mysql restart