2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > ·MySQL数据库管理(SQL操作命令 解决忘记密码 设置用户权限)

·MySQL数据库管理(SQL操作命令 解决忘记密码 设置用户权限)

时间:2022-07-28 10:51:55

相关推荐

·MySQL数据库管理(SQL操作命令 解决忘记密码 设置用户权限)

文章目录

数据库基本操作命令MySQL查看当前服务器中包含的库查看当前使用的库中包含的表显示数据表的结构(字段)命令SQL操作管理命令DDL操作命令DDL语句创建库,表的命令DDL语句删除库,表的命令DML操作命令DML语句的作用是向数据表中插入新的数据记录命令(insert)alter用法总结修改,更新数据表中的数据记录(update)删除整个表在数据表中删除指定的数据记录命令(delete)**清空表的数据**删除数据库和表查看表结构命令DQL操作命令创建临时表DCL操作命令DCL语句的作用设置用户权限的命令撤销用户权限的命令远程连接实例安装mysql服务进行远程连接设置环境变量忘记密码改该密码

数据库基本操作命令

MySQL查看当前服务器中包含的库

show databases;

mysql -u root -p进入数据库> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || sys|+--------------------+4 rows in set (0.00 sec)

查看当前使用的库中包含的表

需要先使用USE语句切换到使用的库

use 数据库名show tables

mysql> use mysql;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -ADatabase changed

mysql> show tables;+---------------------------+| Tables_in_mysql |+---------------------------+| columns_priv || db || engine_cost|| event || func || general_log|...省略内容

显示数据表的结构(字段)命令

mysql>describe [数据库名.]表名;===>可以使用desc [数据库名.]表名;

mysql> describe user;+------------------------+-----------------------------------+------+-----+-----------------------+-------+| Field | Type| Null | Key | Default| Extra |+------------------------+-----------------------------------+------+-----+-----------------------+-------+| Host | char(60)| NO | PRI | | || User | char(32)| NO | PRI | | |

SQL操作管理命令

SQL语言 是Structured Query Language的缩写,及结构化查询语言是关系型数据库的标准语言用于维护管理数据库,如数据查询,数据更新,访问控制,对象管理等功能 SQL分类 DDL:数据定义语言DML:数据操纵语言DQL:数据查询语言DCL:数据控制语言

DDL操作命令

DDL语句用于创建数据库对象,如库,表,索引等

DDL语句创建库,表的命令

创建数据表:create table 表名(字段定义…)创建数据库:create database 数据库名

创建数据表

mysql> create database zhang;//创建库Query OK, 1 row affected (0.00 sec)mysql> use zhang;Database changed

mysql> create table benat (id int(3) not null primary key auto_increment,name varchar(10) not null,score decimal(5,2),address varchar(50) default '未知');整数型int(3);000-999- double 浮点型 8字节- decimal(5,2)有效数字是5位,小数点后面保留2位 (100.00 099.50)- float 单精度浮点 4字节- char (10)固定长度字符串- varcha (50)可变长度字符串- char字符- create table benat 创建表 - not null 不允许为空auto_increment 自动增长default 未知- 字段约束:非空not null;默认default ‘’;主键primary key;自增auto increment。存储引擎:myisam;innodb。字符集:utf8。

DDL语句删除库,表的命令

删除指定的数据表:drop table [数据库名.]表名删除指定的数据库:drop database 数据库名

mysql> drop table benat;'//删除表'mysql> drop database zhang;'//删除库'

mysql> drop table school.info;'//删除表,中间加点,就相当于是绝对路径'Query OK, 0 rows affected (0.00 sec)mysql> drop database school;'//删除库'Query OK, 0 rows affected (0.00 sec)

DML操作命令

DML语句的作用是

DML语句用于对表中的数据进行管理包括以下操作 insert:插入新数据update:更新原有数据delete:删除不需要的数据

向数据表中插入新的数据记录命令(insert)

mysql>insert into 表名(字段1,字段2,字段3,......) values (字段1的值,字段2的值,字段3的值,.....);

mysql> insert into benat values (2,'lisi',77,'shanghai'); 'insert into 后面不跟字段名(默认所有字段),values后面按顺序写全'mysql> select * from info;+----+----------+-------+----------+| id | name| score | address |+----+----------+-------+----------+| 1 | zhangsan | 88.00 | beijing || 2 | lisi| 77.00 | shanghai |+----+----------+-------+----------+

添加用户

mysql> insert into benat (id,name,score,address) values (2,'lisi',88.6,'shanghai');mysql> select * from benat;+----+----------+-------+----------+| id | name| score | address |+----+----------+-------+----------+| 1 | zhangsan | 88.60 | biejing || 2 | lisi| 88.60 | shanghai |+----+----------+-------+----------+2 rows in set (0.00 sec)

alter用法总结

删除列

alter table 【表名】 drop 【列名】

增加列

alter table 【表名】 add 【列名】 【类型】

重命名列

ALTER TABLE 【表名】 CHANGE 【列名】【新名】

给info表添加一个字段为hobby,整型数据类型,不允许为空

alter table info add hobby int(3) not null

查询A表中的行数

select count(*) from A

显示大于80的

mysql> select * from benat where score > 80;

创建一个新表tmp 把大于80 的数据导入进去

mysql> create table tmp as select * from benat where score > 80;

修改,更新数据表中的数据记录(update)

update更新:表名 set 字段名 1=值1[,字段名2=值2] where条件表达式

mysql> update benat set name='zhangsan' where id=2; 修改id=2的名字mysql> select * from benat;+----+----------+-------+----------+| id | name| score | address |+----+----------+-------+----------+| 2 | zhangsan | 88.60 | shanghai || 3 | wangwu | 77.00 | shanghai |+----+----------+-------+----------+mysql> update benat set name='zhangsan'; //修改所有id的name'mysql> select * from benat;+----+----------+-------+----------+| id | name| score | address |+----+----------+-------+----------+| 2 | zhangsan | 88.60 | shanghai || 3 | zhangsan | 77.00 | shanghai |+----+----------+-------+----------+mysql> update benat set score=77 where name='lisi'; 添加lisimysql> select * from benat;+----+----------+-------+----------+| id | name| score | address |+----+----------+-------+----------+| 1 | zhangsan | 88.60 | biejing || 2 | lisi| 77.00 | shanghai || 3 | wangwu | 77.30 | hangzhou || 4 | zhaoliu | 99.00 | suzhou || 5 | tianxing | 60.00 | 未知|+----+----------+-------+----------+5 rows in set (0.00 sec)

删除整个表

mysql> delete from tmp; //删除

在数据表中删除指定的数据记录命令(delete)

mysql>delete from 表名 where 条件表达式;

mysql> delete from tmp where score >= 90 删除90分以上的mysql> select * from tmp;+----+----------+-------+----------+| id | name| score | address |+----+----------+-------+----------+| 1 | zhangsan | 88.60 | biejing || 2 | lisi| 88.60 | shanghai |+----+----------+-------+----------+

清空表的数据

mysql>delete from table_name;mysql>truncate table table_name;

删除数据库和表

使用DDL语句删除库、表

删除指定的数据表

mysql> drop tables benat;//删除整个表

删除整个数据库

mysql> drop database zhang;

查看表结构命令

mysql> desc benat;+---------+--------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra|+---------+--------------+------+-----+---------+----------------+| id| int(3) | NO | PRI | NULL | auto_increment || name | varchar(10) | NO || NULL ||| score | decimal(5,2) | YES || NULL ||| address | varchar(50) | YES || 未知 ||+---------+--------------+------+-----+---------+----------------+4 rows in set (0.00 sec)

DQL操作命令

DQL是数据查询语句,只有一条:SELECT用于从数据表中查找符合条件的数据记录查询时可不指定条件

mysql>select 字段名1,字段名2,...... from 表名;

查询时指定条件

mysql>select 字段名1,字段名2,...... from 表名 where 条件表达式;

mysql> select score from benat;+-------+| score |+-------+| 88.60 || 77.00 |+-------+mysql> select score,address from benat;+-------+----------+| score | address |+-------+----------+| 88.60 | shanghai || 77.00 | shanghai |+-------+----------+mysql> select score,address from benat where id=2;+-------+----------+| score | address |+-------+----------+| 88.60 | shanghai |+-------+----------+1 row in set (0.00 sec)

创建临时表

用于存放临时的数据,不会长时间的存在,断开连接就会被删除,数据存放在内存之中,不在磁盘。

mysql> create temporary table tmp(id int (5) not null primary key auto_increment, -> name char(10) not null, -> socre double(5) default '0' -> )engine=innodb default charset=utf8; mysql> desc tmp; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra| +-------+--------------+------+-----+---------+----------------+ | id | int(5) | NO | PRI | NULL | auto_increment | | name | char(10)| NO || NULL || | socre | decimal(5,2) | YES || 0.00 || +-------+--------------+------+-----+---------+----------------+ 3 rows in set (0.00 sec)

复制表

mysql> create table tmp as select * from benat; 复制

like方法mysql>create table newtest like test;===>从test完整复制表的结构生车工newtestmysql>insert into newtest select * from test;===>导入数据

DCL操作命令

DCL语句的作用

设置或查看用户的权限,或者创建用户

设置用户权限的命令

若用户已存在,则更改用户密码

若用户不存在,则新建用户

GRANT 权限列表 ON 数据库名.表名 TO 用户名@来源地址 [IDENTIFIED BY ‘密码′

mysql>grant 权限列表 on 数据库名.表名 to 用户名@@来源地址 [identified by '密码'];举例mysql> grant select on zhang.* to 'test'@'localhost' identified by '123456';

查看用户的权限

#示例

mysql> show grants for ‘test’@‘20.0.0.20’;

mysql>show grants for 用户名@来源地址;举例mysql> show grants for 'test'@'localhost';+-------------------------------------------------+| Grants for test@localhost |+-------------------------------------------------+| GRANT USAGE ON *.* TO 'test'@'localhost' || GRANT SELECT ON "zhang".* TO 'test'@'localhost' |+-------------------------------------------------+2 rows in set (0.00 sec)查看所有权限mysql> show grants;+---------------------------------------------------------------------+| Grants for root@localhost |+---------------------------------------------------------------------+| GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION || GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION |+---------------------------------------------------------------------+2 rows in set (0.00 sec)

撤销用户权限的命令

REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址

mysql> revoke all privileges on *.* from 'root'@'%';mysql> show grants for 'root'@'%';+----------------------------------------------------+| Grants for root@% |+----------------------------------------------------+| GRANT USAGE ON *.* TO 'root'@'%' WITH GRANT OPTION |+----------------------------------------------------+1 row in set (0.00 sec)

远程连接实例

mysql> grant all privileges on *.* to 'root'@'%' identified by '123456'; '//all privileges:所有权限,%:所有终端'Query OK, 0 rows affected, 1 warning (0.01 sec)mysql> grant all privileges on *.* to 'root'@'locahost' identified by '123456';Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.01 sec)

主机查看

查看数据库

安装mysql服务进行远程连接

设置环境变量

mysql -uroot -p

忘记密码

设置一个tom用户

mysql> grant all privileges on *.* to 'tom'@'locahost' identified by '123456';Query OK, 0 rows affected, 1 warning (0.00 sec)mysql> flush privileges;Query OK, 0 rows affected (0.01 sec)mysql> quit

修改配置文件

root@localhost mysql]# vim /etc/fserver-id=1skip-grant-tables //添加 (跳过验证)[root@localhost bin]# systemctl restart mysqld.service [root@localhost bin]# mysql -u tom -p 再次登录就不用密码Enter password: mysql>

改该密码

mysql> use mysql;Reading table information for completion of table and column namesYou can turn off this feature to get a quicker startup with -Amysql> show tables;+---------------------------+| Tables_in_mysql |+---------------------------+...| time_zone_transition_type || user |+---------------------------+mysql> select * from user; authentication_string 用户密码的位置mysql> update mysql.user set authentication_string=password('123456') where user='tom';Query OK, 0 rows affected, 1 warning (0.01 sec)Rows matched: 1 Changed: 0 Warnings: 1mysql> flush privileges;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。