MySQL基本运维命令详解

2023-01-15 10:37:43

目录1.导出test_db数据库2.导出一个表3.导出一个数据库结构4.导入数据库5.mysql进入与退出6.数据库操作7.数据表操作8.修改密码9.增加用户10.删除用户11....

目录
1. 导出test_db数据库
2. 导出一个表
3. 导出一个数据库结构
4. 导入数据库
5. mysql进入与退出
6. 数据库操作
7. 数据表操作
8. 修改密码
9. 增加用户
10. 删除用户
11. 数据库授权
12. 锁表
13. 查看当前用户
14. MYSQL密码破解方法
15. 存储引擎、系统版本、端口

1. 导出test_db数据库

命令:mysqldump -u 用户名 -p 数据库名 > 导出的文件名

mysqldump -u root -p test_db > test_db.sql

# 导出所有数据库
mysqldump -u root -p –all-databases > mysql_all.sql 

2. 导出一个表

命令:mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名

mysqldump -u root -p test_db test1 > test_test1.sql

3. 导出一个数据库结构

mysqldump -u root -p -d --add-drop-table test_db > test.sql 

4. 导入数据库

1.常用source命令

进入mysql数据库控制台:

mysql -u root -p

然后使用source命令,后面参数为脚本文件(如这里用到的.sql))

mysql>source wcnc_db.sql 

2.使用mysqldump命令

mysqldump -u username -p dbname < filename.sql 

3.使用mysql命令

mysql -u username -p -D dbname < filename.sql 

5. mysql进入与退出

进入

mysql -uroot -p //进入mysql控制台  
mysql -uroot -p password //进入mysql控制台  
mysql -p //进入mysql控制台 

退出

# 第一种
quit
# 第二种
exit

6. 数据库操作

1.创教数据库

命令:create database <数据库名>

mysql> create database [数据库名]; 

2.显示所有数据库

mysql> show databases; 

3.删除数据库

mysql> drop database [数据库名]; 

4.连接数据库

mysql> use [数据库名]; 

5.查看当前使用的数据库

mysql> select database(); 

6.当前数据库包含的表信息

mysql> show tables;

7.查看数据库字符集

mysql> show variables like '%char%';

7. 数据表操作

1.建表

mysql> create table [表名] (
id varchar(20),
name varchar(20)
); 

2.查看表结构

命令:desc 表名,或者show columns from 表名

mysql> desc test;  
mysql> show columns from test;  
mysql> describe test;  
mysql> show create table test;  

3.删除表

mysql> drop table [表名]; 

4.插入数据

mysql> insert into [表名] values ("001","张三"); 

5.查询表数据

MySQL的单表查询比较简单,比如最基本的一些操作:

# 查看表test中所有数据
mysql> select * from test; 

# 查找test表中id=001内容
mysql > select * from test where id=001; 

# 查找test表中已id为0开头的内容
mysql > select * from test where id like "0%"; 

# 查看表test中前2行数据
mysql> select * from test order by id limit 0,2; 
# 或者
mysql> select * from test limit 0,2;

但是实际的场景中我们常常需要进行多表查询,复杂的业务需求也会造成连接查询也变得非常复杂,常用的多表查询方式有连接查询和子查询,但是连接查询的效率一般会比子查询高,关于连接查询可以参考下面这篇文章:

mysql连接查询

不过也有地方不建议使用连接查询,因为连接查询属于重查询,数据量大容易造成阻塞,比如阿里就明文规定禁止用三个表以上的join。做项目的时候应该遵循重业务,轻数据库的原则,能在业务层聚合,就不要用跨表查询。

6.删除表数据

命令:delete from 表名 where 表达式

mysql> delete from test where id=001;

7.修改表数据

命令:update 表名 set 字段=新值 where 表达式

mysql> update test set name='admin' where id=002;

修改表结构:

# 修改test表中name字段的长度
mysql> alter table test modify column name varchar(30);

8.在表中增加字段

命令:alter table 表名 add字段 类型 其他;

# 在表test中添加了一个字段passtest,类型为int(4),默认值为0
mysql> alter table test add passtest int(4) default '0';

9.更改表名

命令:rename table 原表名 to 新表名;

# 在表test名字更改为test1
mysql> rename table test to test1;

8. 修改密码

命令:mysqladmin -uroot -p旧密码 password 新密码

mysql> use mysql;  
mysql> update mysql.user set password='新密码' where user='用户名';  
mysql> flush privileges;  
mysql> set password for 用户名@localhost=password('你的密码');  
mysql> flush privileges; 

9. 增加用户

# 增加一个test用户,密码为1234
mysql> insert into mysql.user(Host,User,Password) values("localhost","test",password("1234"));  
mysql> flush privileges;

10. 删除用户

# 删除test用户
mysql> delete from user where user='test' and host='localhost';  
mysql> flush privileges;

11. 数据库授权

命令:grant 权限 on 数据库名.* to 用户名@localhost identified by ‘密码’;

# 授权test用户拥有test_db库的所有权限
grant all on test_db.* to test@localhost identified by '123456';

# 授权test用户拥有test_db库的select,update权限
grant select,update on test_db.* to test@localhost;

12. 锁表

# 加读锁
mysql> flush tables with read lock;

# 解锁
mysql> unlock tables;

13. 查看当前用户

mysql > select user();

14. MYSQL密码破解方法

先停止Mysql服务,以跳过权限方式启动,命令如下

service mysqld stop  
/usr/local/mysql/bin/mysqld_safe –user=mysql –skip-grant-tables &  

在shell终端输入mysql并按Enter键,进入mysql命令行,由于MYSQL用户及密码认证信息存放在mysql库中的user表,需进入mysql库:

mysql> use mysql;  
mysql> update user set password=password('123456') where user='root';  
mysql> flush privileges;

MYSQL root密码修改完,需停止以Mysql跳过权限表的启动进程,再以正常方式启动MYSQL,再次以新的密码登陆即可进入Mysql数据库

15. 存储引擎、系统版本、端口

# 查看当前使用的存储引擎
mysql > show engines;

# 查看mysql默认存储引擎
mysql> show variables like '%storage_engine%';

# 查看mysql系统版本
mysql> select version();

# 查看mysql库里所有表
mysql>show tables from mysql;

# 查看Mysql端口
mysql>show variables like 'port';

# 查看mysql库user表中user、host信息
mysql> select user,host from mysql.user;

参考资料:

https://www.51cto.com/article/595574.html

到此这篇关于MySQL基本运维命令的文章就介绍到这了,更多相关MySQL运维命令内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!