mysql常用命令

拟墨画扇 提交于 2020-03-29 18:40:28

-----创建-----

查看服务器中当前有哪些数据库
mysql> show databases;
选择所使用的数据库
mysql> use 数据库名;
创建数据库
mysql> create database 数据库名;
在当前数据库中创建数据表
mysql> create table 表名 (字段 1 类型 1,...);

-----删除-----

删除指定的数据库
mysql> drop database 数据库名;
删除当前或指定数据库中指定的数据表 
mysql> drop table 表名;
删除所有记录
mysql> truncate table 表名;
删除字段
mysql> alter table 表名 drop 字段;
在数据表中删除指定的记录 
mysql> delete from 表名 where 条件表达式;
将当前数据库表中记录清空 
mysql> delete from 表名;
用optimize table来优化一下,只对MyISAM, BDB和InnoDB表起作用。运行过程中,MySQL会锁定表。
mysql> optimize table test.userinfo;

-----查看-----

查看服务器中当前有哪些数据库
mysql> show databases;
显示当前数据库中有哪些数据表 
mysql> show tables;
显示当前或指定数据库中指定数据表的结构(字段)信息 
mysql> describe 表名;
显示当前数据库的表中的记录
mysql> select * from 表名;
从数据表中查找符合条件的记录 
mysql> select 字段名 1,字段名 2……from 表名 where 条件表达式;
查看创建数据表的DDL语句
show create table 表名
查看usertest中数据按uid排序显示,SELECT * FROM table_name1 ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]
SELECT * from usertest ORDER BY uid ASC;

-----修改-----

修改数据表的名称
mysql> alter table 旧表名 rename 新表名;
修改字段的类型 
mysql> alter table 表名 modify 字段 类型;
修改字段
mysql> alter table 表名 change 旧字段名 新字段名 类型;
修改、更新数据表中的记录 
mysql> update 表名 set 字段名=新数据 where 条件表达式;

-----增加-----

增加字段
mysql> alter table 表名 add 字段 类型(first/after);
向user表中的name字段后添加aa字段。
mysql> alter table user add aa after name;
添加aa字段并将其作为第一个字段
mysql> alter table user add aa first;
向数据表中插入新的记录
mysql> insert into 表名(字段 1,字段 2,……) values(字段 1 的值, 字段 2 的值,……);
INSERT INTO usertest(NAME,email,age,sex,phone)  SELECT NAME,email,age,sex,phone FROM usertest;

-----对用户授权 -----

mysql> grant 权限 1,权限 2,...... on 数据库.数据表 to 用户@登录位置 (identified by '密码');
取消用户授权
mysql> revoke 取消的权限 1,取消的权限 2,...... on 数据库.数据表 from 用户@登录位置;
mysql> show grants for 用户@登录位置;

1.授予用户全部权限
Mysql> select user from mysql.user;
Mysql> grant all on test.a1 to lis@'%'; 
给已存在用户(lis)授权,对 aa 库中的 a1 表有全部(all)权限, ‘%’代表除本机以外所有。
Mysql> grant all on *.* to lis@'%';
给已存在用户(lis)授权,对所有库所有表有全部(all)权限
Mysql> grant all on *.* to abc@'%' identified by '123456';
grant all on *.* to admin@'%' identified by 'admin';
创建用户 abc 的同时并授权对 aa 库中的 a1 表有全部(all)权限
2.取消 abc 用户的删除库、表、表中数据的权限
Mysql> revoke drop,delete on aa.a1 from abc@'%';  #取消删除权限(登录 abc 测试)
Mysql> show grants for abc@'%'; #查看指定用户 abc 的授权 
创建root用户,密码Idmm4+TtBmc=,权限和root一样的用户
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Idmm4+TtBmc=' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;

-----更改数据库密码-----

方法1
用SET PASSWORD命令   
首先登录MySQL。
更改其他用户密码
mysql> set password for root@localhost = password('123456'); 
更改当前用户密码
mysql> set password=password('123456');
方法2
用mysqladmin   
格式:mysqladmin -u用户名 -p旧密码 password 新密码  
例子:mysqladmin -uroot -p123456 password 123  
方法3
用UPDATE直接编辑user表   
首先登录MySQL。  
mysql> use mysql;  
mysql> update user set password=password('123') where user='root' and host='localhost';  
mysql> flush privileges;  

找回密码

1.root 找回自己的密码并修改
1)关闭数据库
2)修改主配置文件(/etc/my.cnf)<------ skip-grant-tables
3)启动数据库
4)空密码登录并修改密码
mysql> update mysql.user set password=password('新密码') where user='root';
5)删除 skip-grant-tables,重启数据库验证新密码
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!