【Linux】MySQL数据库的利用

打印 上一主题 下一主题

主题 663|帖子 663|积分 1989

linux中摆设MySQL详见我的上一篇博文:
Ubuntu22摆设MySQL5.7详细教程
本篇文章将介绍在Ubuntu中如何利用MySQL数据库。
一、访问MySQL数据库

首先利用root用户登录MySQL
  1. mysql -u root -p
复制代码
验证成功以后将会进入提示符为‘mysql>”的数据库操作情况,用户可以输入各种操作语句对数据库进行管理。

每条MySQL操作语句以分号 ‘;’ 表示结束,输入时可以不区分大小写
status;
表示检察当前数据库服务的根本信息。

  1. status;
复制代码

show databases;
表示用于检察当前MySQL服务器中包罗的库。

  1. show databases;
复制代码
经初始化后的MySQL服务器,默认建立了四个库:test.mysql.information_schema和performance_schema(此中mysql库是mysql正常运行所需的库,此中包罗了用户认证相干的表)。

利用Navicat远程毗连数据库可以看到这四个库

show tables;用于检察当前所在的库中包罗的表。 在操作之前,需要先利用USE语句切换到所利用的库,例如,执行以下操作可以显示mysql库中包罗的全部表。
  1. use mysql;
  2. show tables;
复制代码

describe用于显示表的结构,即构成表的各字段(列)的信息。需要指定“库名.表名” 作为参数;若只指定表名参数,则需先通过USE语句切换到目标库。 例如,执行以下操作可以检察mysql库中的user表的结构。与直接执行“DESCRIBE mysql.user;’”语句的结果雷同。
  1. use mysql;
  2. describe user;
复制代码

在“mysql>”操作情况中,执行 “exit”或“quit”命令 可以退出mysql命令工具,返回原来的Shell情况。
二、创建及删除库和表

1、创建新的库

CREATE DATABASE语句:用于创建一个新的库,需指定命据库名称作为参数。 例如,执行以下操作可以创建一个名为auth的库。
  1. create database auth;
复制代码

刚创建的数据库是空的,此中不包罗任何表,在数据库存放目录下会自动生成一个与新建的库名雷同的文件夹。
利用以下命令可以检察数据库存放目录。
  1. SHOW VARIABLES LIKE 'datadir';
复制代码

可见在数据库存放目录下新增了一个auth文件夹。

2、创建新的表

CREATE TABLE 语句:用于在当前库中创建新的表,需指定命据表名称作为参数,并定义该表格所利用的各字段,根本格式如下所示。
  1. CREATE TABLE 表名 (字段1名称 类型, 字段2名称 类型, ..., PRIMARY KEY (主键名))
复制代码
创建表之前,应先明确数据表格的结构、各字段的名称和范例等信息,例如,若要创建一个包罗用户名、密码字串的用户验证表,应先分析表格结构。
用户验证表内容
用户名密码字串zhangsan123456lisi654321 上述表格中,“用户名”为不凌驾16字节的字符串,不能为空;“密码字串”为不凌驾48个字符的字符串(插入记录时利用MySQL的函数加密)。默认值为空字串。思量到字符集兼容性,最好不要利用中笔墨段名,改用user_name,user_passwd分别表示用户名、密码字串,表格中不能拥有同名的用户。因此可将 user_name作为主键。
针对上述分析结果,可以在auth库中按如下操作创建users表,此中,字段定义部门的DEFAULT 语句用于设置默认的密码字串,PRIMARY语句用于设置主键字段名。
  1. USE auth;
  2. CREATE TABLE users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name));
复制代码

在Navicat中革新毗连可以看到新增的auth库和users表。

3、删除一个数据表

DROP TABLE语句:用于删除库中的表,需要指定“库名.表名”作为参数;若只指定表名参数, 则需先通过执行“USE”语句切换到目标库。
例如,执行以下操作可以删除auth库中的users表。
  1. DROP TABLE auth.users;
复制代码
4、删除一个数据库

DROP DATABASE语句:用于删除指定的库,需要指定库名作为参数。
例如,执行以下操作可以删除名为auth的库。
  1. DROP DATABASE auth;
复制代码
三、管理表中的数据记录

1、插入数据记录

INSERT INTO语句:用于向表中插入新的数据记录,语句格式如下所示。
  1. INSERT INTO 表名(字段1, 字段2, ...) VALUES(字段1的值, 字段2的值, ...)
复制代码
执行以下操作将会向 auth 库中的 users表插入一条记录:用户名为“zhangsan”,对应的密码为 “123456”,需注意的是,VALUES部门的值应与前面指定的各字段逐一对应。
  1. USE auth;
  2. INSERT INTO users(user_name, user_passwd) VALUES('zhangsan', PASSWORD('123456'));
复制代码

在插入新的数据记录时,假如这条记录完整包括表中全部字段的值,则插入语句中指定字段的 部门可以省略。例如,执行以下操作也可以向auth库中的user表插入一条新的记录:用户名为“lisi” 对应的密码为“654321”。
  1. INSERT INTO users VALUES('lisi', PASSWORD('654321'));
复制代码

2、查询数据记录

SELECT语句:用于从指定的表中查找符合条件的数据记录。 MySQL数据库支持标准的SQL查询语句,语句格式如下所示。
  1. SELECT 字段名1, 字段名2, ... FROM 表名 WHERE 条件表达式
复制代码
表示全部字段时,可以利用通配符“*”,若要显示全部的数据记录,则可以省略WHERE条件子句。 例如,执行以下操作可以检察auth库中users表内的全部数据记录,此中由于密码字串已加密,因此不会直接显示出实际的密码内容。
  1. SELECT * FROM auth.users;
复制代码

当需要根据特定的条件查找记录时,WHERE条件子句是必不可少的。 例如,若要查找users表 中用户名为“zhangsan”的记录,显示此中用户名,密码字段的信息,可以执行以下操作。
  1. SELECT user_name, user_passwd FROM auth.users WHERE user_name = 'zhangsan';
复制代码

3、修改数据记录

UPDATE语句:用于修改、更新表中的数据记录,语句格式如下所示。
  1. UPDATE 表名 SET 字段名1=字段值1[字段名2=字段值2] WHERE 条件表达式
复制代码
执行以下操作可以修改users表中用户名为“lisi”的记录,将密码字串设为空值,验证记录内容。可以发现 lisi 用户的密码串值已变为空缺。
  1. UPDATE auth.users SET user_passwd=PASSWORD('') WHERE user_name='lisi';
  2. SELECT * FROM auth.users;
复制代码

在MySQL数据库服务器中,用于访问数据库的各种用户(如root)信息都生存在mysql库的user表中,熟练的管理员可以直接修改此中的数据记录。例如,以下操作可以将数据库用户root的密码设为“123457”,当再次利用“mysql-u root-p”访问MySQL数据库服务器时,必须利用此密码进行验证。FLUSH PRIVILEGES;用于革新用户授权信息。
  1. UPDATE mysql.user SET password=PASSWORD('1234567') WHERE user='root';
  2. FLUSH PRIVILEGES;
复制代码
假如在 Linux 命令行情况中执行,还可以利用mysqladmin 工具来设置密码,命令格式为 “mysqladmin-u root-p“旧密码password“新密码“。例如,执行以下操作可将数据库用户root 的密码设置为“123456”。
  1. mysqladmin -u root -p '1234567' password '123456'
复制代码
4、删除数据记录

DELETE语句:用于删除表中指定的数据记录。语句格式如下所示。
  1. DELETE FROM 表名 WHERE 条件表达式
复制代码
执行以下操作可以删除users表中用户名为“lisi”的数据记录,验证记录内容可以发现,lisi用户的数据记录已经消失。
  1. DELETE FROM auth.users WHERE user_name='lisi';
  2. SELECT * FROM auth.users;
复制代码

在MySQL数据库服务器中,默认添加了从本机访问数据库的来宾用户(user、password均为空)。基于数据库安全性思量,应该删除这些来宾用户。
执行以下操作显示user字段为空的用户记录,并用DELETE 语句进行该用户记录的删除。
  1. SELECT user,host FROM mysql.user WHERE user='';
  2. DELECT FROM mysql.user WHERE user='';
复制代码
四、数据库用户授权

1、授予权限

GRANT语句:专门用来设置数据库用户的访问权限。当指定的用户名不存在时,GRANT语句将会创建新的用户,否则,GRANT语句用于修改用户信息,语句格式如下所示。
  1. GRANT 权限列表 ON 库名.表名 TO 用户名@来源地址 [IDENTIFIRF BY '密码']
复制代码


  • 权限列表用于列出授权利用的各种数据库操作,以逗号进行分隔,如“select,insert,update"。利用 “all”表示全部权限 ,可授权执行任何操作。
  • 库名.表名:用于指定授权操作的库和表的名称,此中可以利用通配符 “*” 。例如,利用 “auth.*” 表示授权操作的对象为auth库中的全部表。
  • 用户名@来源地址用于指定用户名称和允许访问的客户机地址,即谁能毗连、能从哪里毗连。 来源地址可以是域名,IP地址,还可以利用“%”通配符,表示某个地区或网段内的全部地址,如“%.bdqn.com”,“192.168.1.%”等。
  • DENTIFEDBY用于设置用户毗连数据库时所利用的密码字符串。 在新建用户时,若省略 “IDENTIFEDBY”部门,则用户的密码将为空。
执行以下操作可以添加一个名为“xiaoqi”的数据库用户,并允许其从本机访问,对auth库中的全部表具有查询权限,验证密码为“123456”。利用GRANT语句授权的用户记录,会生存到mysql 库的user、db、tables_priv等相干表中,无须革新即可见效。
  1. GRANT select ON auth.* TO 'xiaoqi'@'localhost' IDENTIFIED BY '123456';
复制代码

切换到其他Shell终端,以用户xiaoqi的身份毗连数据库,当执行授权的数据库操作时将被允许, 而执行非授权的数据库操作时将被拒绝。例如,允许用户xiaoqi 查询auth 库中 users表的数据记录, 但克制查询其他库中的表的记录。
用户xiaoqi登录数据库
  1. mysql -u xiaoqi -p
复制代码

验证授权的访问操作
  1. SELECT * FROM auth.users;
复制代码

验证非授权的访问操作
  1. SELECT * FROM mysql.user;
复制代码

在企业服务器的应用中,数据库与网站服务器偶然候是相互独立的。因此在MySQL服务器中,应根据实际情况创建新的用户授权,允许授权用户从网站服务器访问数据库。通常的做法是,创建一个或几个网站专用的库,并授予全部权限,限制访问的来源IP地址。
例如,执行以下操作可以新建bdqn库,并授权从IP地址为192.168.4.19的主机毗连,用户名为“dbuser”,密码为“pwd@123”。允许在bdqn库中执行全部操作。
  1. CREATE DATABASE bdqn;
  2. GRANT all ON bdqn.* TO 'dbuser'@'192.168.4.19' IDENTIFIED BY 'pwd@123';
复制代码

2、检察权限

SHOW GRANTS语句:专门用来检察数据库用户的授权信息,通过FOR子句可指定检察的用户对象(必须与授权时利用的对象名称一致)语句格式如下所示。
  1. SHOW GRANTS FOR 用户名@来源地址
复制代码
执行以下操作可以检察用户dbuser从主机192.168.4.19访问数据库时的授权信息。此中USAGE权限对应的授权记录中包罗了用户的毗连密码字串。
  1. SHOW GRANTS FOR 'dbuser'@'192.168.4.19';
复制代码

3、撤销权限

REVOKE语句:用于撤销指定用户的数据库权限,撤销权限后的用户仍旧可以毗连到MySQL服务器,但将被克制执行对应的数据库操作。 语句格式如下所示。
  1. REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@来源地址
复制代码
执行以下操作可以撤销用户xiaoqi从本机访问数据库auth的全部权限。
  1. REVOKE all ON auth.* FROM 'xiaoqi'@'localhost';
  2. SHOW GRANTS FOR 'xiaoqi'@'localhost';
复制代码

参考资料:
Linux——MySQL数据库的利用

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

盛世宏图

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表