Mysql常用操作命令
文章目录
连接数据库
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_connected 跟 show 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
文章作者 Brook
上次更新 2020-06-10