首页 > 数据库 >使用CEntOS 7.9系统管理MySQL数据库

使用CEntOS 7.9系统管理MySQL数据库

时间:2024-06-24 11:28:07浏览次数:36  
标签:users CEntOS 数据库 MySQL auth user mysql 7.9 select

一:使用 MySQL 数据库

1:查看数据库结构

[root@localhost ~]# mysql -u root -ppwd123

mysql> show databases;

mysql> use mysql

mysql> show tables;

mysql> describe user;

mysql> select * from user\G;

备注:

  • information_schema数据库:保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等
  • performance_schema:用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况
  • mysql:是 MySQL 服务正常运行所需的数据库,其中包含了用户认证相关的表

2:创建及删除数据库和表

(1)创建新库

mysql> create database auth;

(2)创建新表

mysql> use auth;

mysql> CREATE TABLE users (user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT '', PRIMARY KEY (user_name));

备注:

DEFAULT ''  密码默认为空

注意:5.7以前的版本的password()加密函数可以生成16位密文,5.7后的password()函数可以生成41位的密文,其算法为mysql_native_password;设置密码字段的时候要考虑加密,提供的字符长度要够用。,否则在添加记录时,如果使用了password()加密函数保存密码字段,会提示字符长度错误。

8.0的mysql已经弃用password()

(3)删除一个数据表

mysql> DROP TABLE auth.users;

(4)删除一个数据库

mysql>DROP DATABASE auth;

SQL语言

DDL:数据定义语言(create、drop、alter)

DML:数据操纵语言(insert、update、delete)

DQL:数据查询语言(select)

DCL:数据控制语言(grant、revoke、commit、rollback)

3:管理表中的数据记录

(1)插入数据记录

mysql>use auth;

mysql>INSERT INTO users(user_name,user_passwd) VALUES('zhangsan', PASSWORD ('123456'));

mysql>INSERT INTO users VALUES('lisi', PASSWORD('654321'));

(2)查询数据记录

mysql>select * from auth.users;

mysql>SELECT user_name,user_passwd FROM auth.users WHERE user_name='zhangsan';

(3)修改数据记录

mysql>UPDATE auth.users SET user_passwd=PASSWORD('') WHERE user_name= 'lisi';

mysql>SELECT * FROM auth.users;

mysql>UPDATE mysql.user SET authentication_string=PASSWORD('123457') WHERE user='root';

mysql>FLUSH PRIVILEGES; 

[root@www ~]# mysqladmin -u root -p'123457' password '123456'

(4)删除数据记录

mysql>DELETE FROM auth.users WHERE user_name='lisi';

mysql>SELECT * FROM auth.users;

4:数据库表高级操作

(1)克隆表

mysql>create table user01 like auth.users;     //通过 LIKE 方法,复制 users 表生成 tmp 表,注意,此表为空

mysql>insert into user01 select * from auth.users;     //通过 player 表生成 tmp 表内数据记录

(2)删除表

mysql> delete from user01 where user_name='zhangsan';

mysql>delete from user01;

mysql>insert into user01 select * from auth.users;

mysql>truncate table user01;

mysql>select count(*) from user01;

备注:

truncate和delete的区别:

truncate删除表中的内容,不删除表结构,释放空间;

delete删除表中的内容,不删除表结构,但不释放空间

truncate删除数据后重新写数据会从1开始,

delete删除数据后只会从删除前的最后一行续写;内存空间上,truncate省空间

delete属于DML语句,而truncate和drop都属于DDL语句

delete可以在后续加上where进行针对行的删除

truncate和drop后面只能加上表名,直接删除表,无法where

drop table 表名  删除表,内容连带结构一起删除;

(3)临时表

mysql>select * from mytmp;           //查看 mytmp 表是否存在

mysql>CREATE TEMPORARY TABLE `mytmp` (

`id` int(10) NOT NULL AUTO_INCREMENT,

`NAME` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,

 `level` int(10) NOT NULL,

PRIMARY KEY (id)

 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;           //创建临时表

mysql> insert into mytmp(name,level) values('aa',10);      //插入数据

Query OK, 1 row affected (0.01 sec)

mysql>select * from mytmp;

mysql>quit //退出当前连接

Bye

mysql>select * from mytmp;     //重新连接 MySQL 之后查看临时表状态

二:数据库用户授权

1:授予权限

mysql>GRANT select ON auth.* TO 'zhangsan'@'localhost' IDENTIFIED BY '123456';

2:查看权限

mysql> SHOW GRANTS FOR 'zhangsan'@'localhost';

3:验证权限

[root@localhost ~]# mysql -u zhangsan -p123456

mysql> select * from auth.users;

mysql> select * from mysql.user;

备注:

zhangsan用户可以查看auth数据库的表,但不能查看mysql数据库的表。

4:撤销权限

mysql> revoke all on auth.* from zhangsan@'localhost';

[root@localhost ~]# mysql -u zhangsan -p123456

mysql> select * from mysql.user;

撤销权限后,已经无法查看auth中的表

标签:users,CEntOS,数据库,MySQL,auth,user,mysql,7.9,select
From: https://blog.csdn.net/zandsw_/article/details/139920437

相关文章

  • 课题分享:智能停车场管理系统,基于java+SSM+mysql
     一、前言介绍       随着互联网技术的飞速进步和网络覆盖的日益扩大,智能停车场管理系统依托于强大的网络技术基础,实现了迅猛的发展。在设计和开发这样的系统时,首要任务是深入理解并满足用户的实际需求。这要求开发者通过市场调研和用户反馈,准确把握用户需求,从而打造......
  • 课题分享:学生成绩管理系统,基于java+SSM+mysql
     一、前言介绍    随着互联网技术的飞速发展和普及,学生成绩管理系统也得到了显著的提升和改进。这一进步首先源于对学生实际需求的深入理解和满足。开发者通过与学生的互动和反馈,了解到他们对于成绩管理的具体需求,并据此开发出具有针对性的功能。这些功能不仅满足了学......
  • MySQL之复制(十四)
    复制复制有多快关于复制的一个比较普遍的问题是复制到底有多快?简单来讲,它与MySQL从主库复制事件并在备库重放的速度一样快。如果网络很慢并且二进制日志事件很大,记录二进制日志和在备库上执行的延迟可能会非常明显。如果查询需要执行很长事件而网络很快。通常可以认为查询......
  • CentOS7 升级内核记录
    为什么要升级kernel安全性提升:新版本的kernel通常修复了旧版本中的安全漏洞。性能改进:升级可能包含对硬件支持的改进,从而提高系统性能。新功能:新版本可能引入了新的功能或改进了现有功能。更好的兼容性:新kernel可能会更好地支持最新的硬件和软件。但是,升级kernel也可能带来......
  • 虚拟机centos7,无法ping通百度
    参考:centos7虚拟机静态ip设置详细教程(超全超详细亲测有效)_centos7设置静态ip-CSDN博客一、虚拟机需要设置这个网络编辑器,网络选为NAT模式。 打开命令行,执行:vim/etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPR......
  • centos7禁止 SSH 登录失败超过30次的IP
    使用firewalld禁止SSH登录失败超过30次的IP概述在CentOS7中,一般默认安装了firewalld动态添加失败登录超过30次的IP地址到防火墙规则中,禁止这些IP的访问。编写和使用脚本,通过firewalld来实现;注意iptables不适用,但大差不差。步骤1.安装firewalld确保firewalld已......
  • jdbc中存储日期+准确时间到mysql的处理
    一、如果数据库中日期字段类型为datedate类型只显示年月日Timestamptime=newjava.sql.Timestamp(newjava.util.Date().getTime());ps.setTimestamp(1,time);//数据库中显示:2024-06-22java.sql.Datectime=newjava.sql.Date(newjava.util.Date().getTime());p......
  • centos7&国产uos&银河麒麟系统安装MYSQL
     1.解压  tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.34-linux-glibc2.12-x86_64 mysql 2. 先检查是否有mysql用户组和mysql用户,没有就添加有就忽略:groupsmysql  添加用户组和用户groupaddmysql&&useradd-r-gmys......
  • mysql 如何分配root账号创建数据库的权限
    1.mysql如何分配root账号创建数据库的权限在MySQL中,root用户通常具有所有的权限,包括创建数据库的权限。但是,如果我们想要为另一个用户分配创建数据库的权限,或者想要限制root用户对某个特定数据库或服务器的权限(尽管这在实际操作中并不常见,因为root用户通常应该是无限制的......
  • mysql 如何分配root账号创建数据库的权限
    1.mysql如何分配root账号创建数据库的权限在MySQL中,root用户通常具有所有的权限,包括创建数据库的权限。但是,如果我们想要为另一个用户分配创建数据库的权限,或者想要限制root用户对某个特定数据库或服务器的权限(尽管这在实际操作中并不常见,因为root用户通常应该是无限......