前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【灵魂拷问】你真的懂得Mysql的管理和使用吗?

【灵魂拷问】你真的懂得Mysql的管理和使用吗?

作者头像
达达前端
发布于 2019-12-13 08:35:07
发布于 2019-12-13 08:35:07
56500
代码可运行
举报
文章被收录于专栏:达达前端达达前端
运行总次数:0
代码可运行
file

作者 | Jeskson

来源 | 达达前端小酒馆

MySQL管理,数据库管理和数据表管理,用户管理。

初始化数据库,创建数据库,查看数据库,删除数据库。

创建数据表,查看数据表,修改数据表,删除数据表。

用户管理,创建与删除用户,授予与回收用户权限,设置与更改用户密码。

数据库管理

初始化数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysqld --initialize

启动数据库:

使用windows服务器管理界面启动;或使用MySQL命令启动。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mysql -u root -p

创建数据库

CREATE DATABASE语句用于创建一个新的数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE DATABASE [db_name];
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 创建一个名为dada的数据库
create database data;

数据库创建好后,会在data目录下自动生成一个名为data的目录,该数据库的数据会存储于此目录下,MySQL是一个数据库管理系统,支持运行多个数据库。

查看数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SHOW DATABASES
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
show databases;

删除数据库

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP DATABASE db_name;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
drop database dada; // 删除dada数据库

删除数据库是一个不可逆的操作。

MySQL数据表管理

MySQL的每个数据库就相当于一个容器,里面放着很多许多表,表中的每行包含一条具体的数据关系信息,为数据记录。在data目录下,每个数据库对应一个目录。

每个数据表对应3个文件,分别为".frm","myd",".myi"类型的文件。

创建数据表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
USE 数据库名;
CREATE TABLE 表名(字段名 类型(长度),字段名 类型(长度));

查看数据表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SHOW语句和DESCRIBE语句

// 查看数据库中有哪些表
SHOW TABLES;

// 此命令可以列出所有表名
show tables;

// DESCRIBE
DESCRIBE 库名.表名;
使用DESCRIBE语句可以查看某一个表的具体结构,并查看组成表的各字段的信息
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
use mysql;
describe user;

使用describe语句可以查看表的各个字段名称,类型,长度,是否非空,是否有主键,默认值以及备注等信息。

修改数据表

修改数据表使用ALTER语句来实现,alter,修改表,包括修改表的名,字段的名,字段类型等表结构。

修改表名

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ALTER TABLE 旧表名 RENAME 新表名;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ALTER TABLE student RENAME student1;

修改字段名:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ALTER TABLE student1 CHANGE name s_name varchar(50);

修改字段类型

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ALTER TABLE 表名 MODIFY 属性名 数据类型;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ALTER TABLE student1 MODIFY name varchar(2);

增加字段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ALTER TABLE 表名 ADD 属性名 数据类型;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ALTER TABLE student1 ADD sex char(1)

删除字段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ALTER TABLE 表名 DROP 属性名;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ALTER TABLE student1 DROP sex;

删除数据表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
USE 数据库名;
DROP 表名;

使用DROP语句可以删除数据库中的表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE 数据库名.表名;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
USE test;
DROP TABLE student1;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP TABLE test.sudent1;

mysql用户管理

创建与删除用户

创建用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE USER 'username'@'host' IDENTIFIED BY 'password';

username表名要创建的用户名 host表示在哪个主机上可以登录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE USER 'test1'@'localhost' IDENTIFIED BY '123';
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE USER 'test2'@'192.123.2.2' IDENTIFIED BY '12';
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
CREATE USER 'test3'@'%' IDENTIFIED BY '';
// identified

用户删除

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP USER 'username'@'host';

删除用户的语法与创建用户的语法相同

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DROP USER 'test1'@'localhost';

删除本地主机数据库用户

授予与回收用户权限

可以对用户进行授权:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GRANT privileges ON dbname.tablename To 'username'@'host';

privileges表示要授予用户的操作权限

dbname表示数据库名

tablename表示数据表名

usernamehost分别表示用户名和登录主机

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GRANT SELECT, INSERT ON mysql.test TO 'test1'@'%';

表示授权用户test1在所有登录主机均对mysql库的test表拥有selectinsert权限。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
GRANT ALL ON *.* TO 'test2'@'localhost';

如果要授予用户对所有数据库和表的相应操作权限,可用“*”表示,如“*.*”。

回收用户权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
REVOKE privileges ON databasenamme,tablename FROM 'username'@'host';
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
REVOKE SELECT ON *.* FROM 'test2'@'localhost';

回收用户test2在本地主机数据库对所有库的所有表的SELECT权限

设置与更改用户密码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');;

username为要设置或更改密码的用户名

host为用户的登录主机

newpassword为设置或更改的密码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SET PASSWORD FOR 'test1'@'localhost' = PASSWORD('123');

file

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
shell expect权威指南和实战
我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而expect就使用来实现这种功能的工具。
sunsky
2020/08/20
2.3K0
Linux 命令(239)—— expect 命令
expect 是一个自动化交互套件,主要应用于执行命令时,以交互形式按照要求输入指定字符串,实现自动交互。
恋喵大鲤鱼
2023/01/07
3.6K0
Linux命令(30)——scp命令
scp(secure copy)命令是一个基于SSH安全的进行远程文件拷贝命令,用于在Linux下进行远程拷贝文件,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp支持对传输的数据进行加密。
恋喵大鲤鱼
2018/08/03
3.9K0
分发系统——expect 原
(adsbygoogle = window.adsbygoogle || []).push({});
阿dai学长
2019/04/03
5780
expect shell 脚本记录
expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。
郭顺发
2021/12/17
9340
shell脚本快速入门之-----深入介绍Expect免交互
spawn 启动追踪 —> expect 匹配捕捉关键字 ——> 捕捉到将触发send 代替人为输入指令—> interact /expect eof
不吃小白菜
2020/09/03
2.5K0
Linux expect详解
2018-07-11 分类:Linux Shell / 系统运维 / 编程开发 阅读(6670) 评论(0) 
拓荒者
2019/06/21
3.4K0
Linux expect详解
shell项目-分发系统-expect
一、什么是分发系统?(循序渐进) 服务上线,这个词应该不陌生,公司内部一般都会有很多服务器,随着业务的不断发展,我们需要不断的去调整服务器的各项配置来适配现在的需求,但是server很多不可能一台一台的去修改,浪费人工和时间,这时候我们需要一个系统,这个系统可以帮助我们把更新的配置更新到每台服务器。 二、远程登录 2.1 环境需求 模板机 线上的server 2.2 模板机配置 [root@zhdy-03 ~]# yum install -y expect 2.3 自动远程登录,执行命令 vim main
老七Linux
2018/05/09
1.5K0
expect 实现自动化命令下发
随着业务增长需要管理的主机数量也随之增多,在很多情况下需要对批量的主机进行配置变更,然而一台台的修改主机的配置显然是不现实的,也不符合当下运维趋势。能用机器实现的就不要以人肉的方式做无用功,向自动化运维方向迈进。接下来介绍如何使用 expect 实现对批量 Linux 主机和网络设备的命令下发配置。
Kevin song
2020/12/22
8450
Linux之expect工具免交互式shell脚本执行
Linux之expect工具是一个根据脚本与其他交互式程序进行交互。通过在脚本中设定期望值和响应值进行交互操作。主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。 以SSH KEY 生成以及发送到远程服务器为例简单介绍下expect工具 expect 启用选项: -c执行脚本前先执行的命令,可多次使用-ddebug模式,可以在运行时输出一些诊断信息,与在脚本开始处使用exp_internal 1相似。-D启用交换调式器,可设一整数参数。-f从文件读取命令,仅用于使用#!时。如果文件
友儿
2022/07/27
1.2K0
Linux expect用法介绍
1.expect是linux中一个交互命令,一般在 /usr/bin/expect路径下,如果该路径未加入到环境中需要先添加,其作用场景常用于交互执行输入指令
瑾诺学长
2020/08/13
5.2K0
Shell脚本和expect实现自动交互
expect是一个自动交互功能的工具,可以满足代替我们实际工作中需要从终端手动输入某些内容来使得程序或命令继续运行的目的。如安装软件是时的一些提示,ssh远程主机执行命令时需要多次输入密码的情况
剧终
2020/08/27
1.5K0
expect java,Expect 使用详解「建议收藏」
expect是Unix系统中用来进行自动化控制和测试的软件工具,由Don Libes制作,作为Tcl脚本语言的一个扩展,应用在交互式软件中如telnet,ftp,Passwd,fsck,rlogin,tip,ssh等等。该工具利用Unix伪终端包装其子进程,允许任意程序通过终端接入进行自动化控制;也可利用Tk工具,将交互程序包装在X11的图形用户界面中。
全栈程序员站长
2022/11/15
3K0
expect自动交互脚本:简化你的自动化任务
在日常的 Linux 系统管理和自动化任务处理中,经常会遇到需要自动登录到服务器并执行一系列命令的情况,例如批量部署更新、监控日志等。手动操作不仅耗时耗力,而且效率低下,特别是当涉及到多台服务器时。
南山竹
2024/06/28
3320
expect自动交互脚本:简化你的自动化任务
Linux expect 自动交互脚本用法
最近用到自动交互脚本进行数据库备份,以前虽然也有用来使用 ftp 远程获取文件,还来没有系统记录过,趁这次机会总结一下。
Li_XiaoJin
2022/06/12
1.9K0
Linux 下自动应答工具 Expect 使用指南
现代的 Shell 对程序提供了最小限度的控制(程序的开始/停止/关闭等),而把交互的特性留给了用户。这意味着有些程序,你不能非交互的运行,比如说 passwd 命令。有一些程序可以非交互的运行,但在很大程度上丧失了灵活性,比如说 fsck 命令。这表明 Unix 的工具构造逻辑开始出现问题。Expect 恰恰填补了其中的一些裂痕,解决了在 Unix 环境中长期存在着的一些问题。
iMike
2021/03/10
1.9K0
expect快速入门
expect是一个自动化交互式应用程序的工具,所以expect可以用来处理交互的命令。借助expect,我们可以将交互过程写在一个脚本上,使之自动化完成。形象的说,ssh登录,ftp登录等都符合交互的定义。expect含有利用正则表达式进行模式匹配以及通用的编程功能,允许简单的脚本智能地管理如下工具:telnet,ftp和ssh(这些工具都缺少编程的功能),宏以及其它程序。expect脚本的出现使得这些老的软件工具有了新的功能和更多的灵活性。
端碗吹水
2020/09/23
1.1K0
20.28 expect脚本远程登录
expect脚本远程登录 yum install -y expect 自动远程登录 [root@aminglinux-02 sbin]# vim 1.expect #! /usr/bin/expect set host "192.168.133.132" set passwd "123456" spawn ssh root@$host expect { "yes/no" { send "yes\r"; exp_continue} // "password:" { send "$pass
运维小白
2022/01/06
1.2K0
# Linux expect命令详解
在Linux系统中,expect 是一款非常有用的工具,它允许用户自动化与需要用户输入进行交互的程序。本文将深入探讨expect命令的基本语法、使用方法以及一些最佳实践。
修己xj
2023/12/04
5990
# Linux expect命令详解
Linux之expect交互语言命令
****前言**** 记得在去年在蝴蝶脚本已经看到过expect,只不过没有去留意它是什么,是干什么的,然而今天去了解了,并利用它来写自动化交互脚本。在服务器开发中,有时候需要同步文件(scp),远程服务器(ssh)等等,难免要进行密码的检验,这就麻烦了,不过认识expect就有解决方案啦,那么我们来认识一下吧~~~ ---- ****expect简介**** expect是Linux脚本编程工具语言,用来实现自动和交互式任务进行通信,从而不用手动处理。换句话说就是这些命令和程序是期望从终端得到输入,一
AlicFeng
2018/06/08
2.1K0
相关推荐
shell expect权威指南和实战
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档