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
-
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用户配置
-
创建用户
CREATE USER "username"@"%" IDENTIFIED BY "password";
-
用户赋权
#赋给用户全部权限
GRANT ALL PRIVILEGES ON *.* TO "username"@"%";
flush privileges ;
#收回用户的所有权限
REVOKE ALL PRIVILEGES ON *.* FROM "username"@"%";
flush privileges ;
#赋给用户查询要限
grant select on *.* to "username"@"%"
flush privileges ;
-
修改用户
#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";
-
删除用户
#mysql5 与MySQL8 在修改用户上有不同的操作 # MySQL5 是通过delete语句操作 MySQL.user表里的记录来实现 delete from mysql.user where mysql.`user`.user="userName"; #MySQL8 是通过drop user 语句来操作 drop USER "userName"@"%" ;
三、数据库管理
-
数据库的增、删、改、查
-- 添加数据库 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
四、数据表管理
-
数据表的增、删、改、查
-- 创建数据库表 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
-
数据表修改名字
## 关系型数据库理论
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