首页 > 数据库 >MYSQL学习

MYSQL学习

时间:2022-10-15 20:22:52浏览次数:39  
标签:-- 数据库 MYSQL 用户 学习 user mysql 属性

MYSQL学习笔记

一、MYSQL的安装与配置

#在LINUX环境下安装mysql
# 一、先安装MySQL Yum Repository
  wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
  二、安装源
  rpm -i mysql80-community-release-el7-3.noarch.rpm
  三、安装mysql
  yum install mysql-community-server
  四、mysql在安装后会创建一个root@locahost账户,并且把初始的密码放到了/var/log/mysqld.log文件中;
  五、mysql开机自动启动
  systemctl enable mysqld
  六、启动MySQL数据库服务
  systemctl start mysqld
  
#在LINUX环境下安装mariadb
# 一、先安装MariaDB Yum Repository
	curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
  二、安装mariadb-server
  	yum install mariadb-server
  三、加密用户密码,复制加密后的密码备用
  	select PASSWORD('密码明文')
  三、创建用户并设置权限
  	grant all privileges on *.* to 'username'@'%' identified by PASSWORD '加密后的密码符串'
  四、刷新用户权限
  	flush privileges
  1. MY.ini配置文件,这个文件一般放在安装目录的主目录下,文件名一般为my.cnf

    [mysqld]
    # 设置3306端口
    port=3306
    # 设置mysql的安装目录
    basedir=E:\\software\\mysql\\mysql-8.0.11-winx64   
    # 切记此处一定要用双斜杠\\,单斜杠我这里会出错,不过看别人的教程,有的是单斜杠。自己尝试吧
    # 设置mysql数据库的数据的存放目录
    datadir=E:\\software\\mysql\\mysql-8.0.11-winx64\\Data   
    # 此处同上
    # 允许最大连接数
    max_connections=200
    # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
    max_connect_errors=10
    # 服务端使用的字符集默认为UTF8
    character-set-server=utf8
    # 创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    # 默认使用“mysql_native_password”插件认证
    default_authentication_plugin=mysql_native_password
    [mysql]
    # 设置mysql客户端默认字符集
    default-character-set=utf8
    [client]
    # 设置mysql客户端连接服务端时默认使用的端口
    port=3306
    default-character-set=utf8
    
    #设置最大的传输数据包
    max_allow_package=1000m
    

二、MySQL用户配置

  1. 创建用户

    CREATE USER "username"@"%" IDENTIFIED BY "password";
    
  2. 用户赋权

#赋给用户全部权限
GRANT ALL PRIVILEGES ON *.* TO "username"@"%";
flush privileges ;

#收回用户的所有权限
REVOKE ALL PRIVILEGES ON *.* FROM "username"@"%";
flush privileges ;


#赋给用户查询要限
grant select on *.* to "username"@"%"
flush privileges ;

  1. 修改用户

    #mysql5 与MySQL8 在修改用户上有不同的操作
    
    # MySQL5 是通过update语句操作 MySQL.user表里的记录来实现
     update mysql.user set `Password`=password("123456") where mysql.`user`.user="userName";
     
    #MySQL8 是通过alter user 语句来操作
    ALTER USER "userName"@"%" IDENTIFIED BY "123456";
    
  2. 删除用户

    #mysql5 与MySQL8 在修改用户上有不同的操作
    
    # MySQL5 是通过delete语句操作 MySQL.user表里的记录来实现
     delete from mysql.user where mysql.`user`.user="userName";
     
    #MySQL8 是通过drop user 语句来操作
    drop USER "userName"@"%" ;
    

三、数据库管理

  1. 数据库的增、删、改、查

    --  添加数据库
     CREATE DATABASE  IF NOT EXISTS newDB DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci
    
    -- 修改数据库
    -- 在 MySQL 数据库中只能对数据库使用的字符集和校对规则进行修改,如果要修改数据名字,只能复制整个数据库文件数据库的这些特性都储存在 db.opt 文件中。下面我们来介绍一下修改数据库的基本操作。
    ALTER DATABASE [数据库名] { 
    [ DEFAULT ] CHARACTER SET <字符集名> |
    [ DEFAULT ] COLLATE <校对规则名>}
    
    -- 删除数据库
     DROP DATABASE IF EXISTS newDB
     
     -- 使用数据库
     use databaseName
    
    

四、数据表管理

  1. 数据表的增、删、改、查

    -- 创建数据库表 student
    
    create table if not exists student 
    (
    	id int(5) not null auto_increment primary key,
    	name varchar(50) not null ,
    	age int(2) not null
    )
    engine= innodb ,charset=utf8
    
    
    -- 修改数据库表
    /*
    { ADD COLUMN <列名> <类型> [first|after <columnName>]
    | CHANGE COLUMN <旧列名> <新列名> <新列类型>
    | ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
    | MODIFY COLUMN <列名> <类型>
    | DROP COLUMN <列名>
    | RENAME TO <新表名>
    | CHARACTER SET <字符集名>
    | COLLATE <校对规则名> }
    */
    -- ALTER TABLE  student
    -- change column id idd int(10) not null  # 没有涉及的旧设置将会保留
    -- modify column idd int(14) not null # 没有涉及的旧设置将会保留
    # 添加字段
    -- ADD COLUMN age INT(5) NOT NULL DEFAULT 7 AFTER id
    # 删除字段
    -- drop column age
    
    -- 删除数据表 
    -- DROP TABLE  IF EXISTS student
    
    
    
    
  2. 数据表修改名字

    
    
   
   

## 关系型数据库理论

1、关系:在关系数据库中,实体以及实体间的联系都是用关系来表示的。类似于程序设计

语言中变量的概念。

2、关系模式:是对关系的描述。类似于程序设计语言中类型定义的概念。

3、关系模型:是由若干个关系模式组成的集合。

4、属性:用来描述某一个事物的特征。

5、域:每个属性的取值范围所对应一个值的集合。

6、候选码:若关系中的某一属性或属性组的值能唯一标识一个元组,则称该属性或属性组

为候选码。

7、主码:又称为主键,若一个关系有多个候选码,则选定其中一个为主码。

8、主属性:包含在任何候选码中的各个属性称为主属性。

9、非主属性:不包含在任何候选码中的属性称为非主属性。

10、外码:如果关系模式R中的属性或属性组非该关系的码,但它是其他关系的码,那么该

属性集对关系模式R而言是外码。

![image-20211008115045968](C:\Users\enixl\Desktop\开发笔记\数据库学习笔记\image-20211008115045968.png)

标签:--,数据库,MYSQL,用户,学习,user,mysql,属性
From: https://www.cnblogs.com/enixlin/p/16794942.html

相关文章

  • python学习——爬取数据到excel
    python的学习直接使用网页爬虫,将内容爬取到excel,也是为之后的大数据学习做铺垫。下面的代码是我爬取的豆瓣电影Top250的电影基本信息,当然,也可以爬取到数据库中#-*-cod......
  • Flask 学习-91.使用 gunicorn 部署 flask
    前言flask启动访问平常开发的时候可以用命令行flaskrun运行,正式部署到线上环境不会这样用。Gunicorn环境准备Web框架致力于如何生成HTML代码,而Web服务器用于处理和响......
  • 【软件学习之Typora】如何用Typora将插入图片自动复制到同目录文件夹
    我们在本地使用Typora时,插入图片路径往往默认为自身本地路径(含本身电脑根目录),而该md文件发给他人,在其他电脑打开,由于绝对路径问题,无法加载图片。故应该进行相应的设置有......
  • 2022-2023-1 20221306 《计算机基础与程序设计》第七周学习总结
    作业信息班级链接:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07作业目标:子程序与参数,抽象数据......
  • (数据科学学习手札144)使用管道操作符高效书写Python代码
    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes1简介大家好我是费老师,一些比较熟悉pandas的读者朋友应该经常会使用que......
  • 【软件学习】如何更换Typora主题样式
    打开Typora,点击文件→偏好设置→外观→打开主题文件夹目录一般主题文件夹为:....\Typora/themes类似于:新建或者粘贴.css文件重启Typora点击主题,即可出现新......
  • 知识点学习掌握-集合
    集合Arraylist与LinkedList的区别​ ArrayList是一个动态数组,但对数据的增加和删除比较复杂,它是基于索引的数据接口,随机访问较为便捷,它的底层是数组,是非同步的。​ Link......
  • Linux下mysql5.7.37升级至mysql5.7.39-RPM安装
    mysql版本5.7.37升级到5.7.39。由于我们由于我们安装mysql的方式是通过mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar中的rpm包安装。所以升级的方式是专门针对这种方式:rpm-iv......
  • 【学习笔记】HttpServletRequest
    HttpServletRequestweb服务器接收到客户端的http请求,针对这个请求,分别创建一个代表请求的HttpServletRequest对象,和一个代表响应的HttpServletResponse对象如果要获取......
  • mybatis学习
    初步学习了mybatis的相关知识,其实就是用来简化jdbc那些代码的,相当于JDBCplus,通过一两行代码达到原来JDBCA十几行代码的效果首先创建maven项目,其次是需要在resour里面导入......