mySQL8知识点
mySQL8的安装
- 首先,将RAR文件解压到预设的目录中,在目录中创建my.ini文件,内容如下
[mysqld]
basedir = D:\ProgramFiles\mysql-8.0.11-winx64
datadir = D:\ProgramFiles\mysql-8.0.11-winx64\data
port = 3306
lower_case_table_names = 2
default_authentication_plugin=mysql_native_password
character-set-server = utf8mb4
[mysql]
default-character-set = utf8mb4
[client]
default-character-set = utf8mb4
右键点击我的电脑,配置环境变量,添加PATH设置,将解压文件夹下的bin路径添加到变量值中。
以管理员的身份运行cmd,运行命令
mysqld --initialize --console
在执行的过程信息中会显示ROOT的临时密码,需要记录一下。没记住,删掉初始化的 data目录,再执行一遍初始化命令,又会重新生成的。
- 安装服务,需要执行
mysqld --install
- 启动服务,执行
net start mysql
如果需要停止服务或卸载服务,可以通过命令
net stop mysql
停止服务。通过命令
sc delete MySQL/mysqld -remove
卸载 MySQL 服务。
- 更改密码
在MySQL安装目录的 bin 目录下执行命令:
mysql -u root -p
这时候会提示输入密码,记住了上面安装时的密码,填入即可登录成功,进入MySQL命令模式。
然后修改密码,运行
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
在SQL的shell里,可以用命令行检查一下SQL的运行情况
show databases;
use mysql;
show tables;
会显示databases->mysql中数据表的清单。
mysql使用的知识点
建立用户
在SHELL模式下,输入
create user 'norwin'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
则会建立本地帐户norwin,密码是123456。
mySQL中建立的用户都在mySQL库的user表中保存,可以通过下面的命令查看用户是否建立成功
use mysql;
select user,host from user\G;
服务断开
quit;
授权所有权限
GRANT ALL PRIVILEGES ON *.* TO 'norwin'@'%';
授权基本的查询修改权限,按需求设置
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON *.* TO 'norwin'@'%';
查看用户权限
show grants for 'norwin'@'%';
uuid的生成和使用
- mysql中直接使用uuid()函数,可以生成一个随机的uuid。
- 正常的uuid是36位长度的。
数据库的建立
如果存在数据库,则删除该数据库并建立新的
DROP DATABASE IF EXISTS STPMS;
CREATE DATABASE STPMS;
USE STPMS;
载入SQL文件
source xxx.sql
STPMS工程的源代码
STPMS工程由杨MM所写,记录在这里,以备后续的查阅需要,在此对杨MM表示感谢。
#数据库
DROP DATABASE IF EXISTS STPMS;
CREATE DATABASE STPMS;
USE STPMS;
#单位表
DROP TABLE IF EXISTS department;
CREATE TABLE department
(
id VARCHAR(36),
pID VARCHAR(36),
name VARCHAR(64) NOT NULL,
address VARCHAR(255),
remark VARCHAR(255),
PRIMARY KEY(id),
FOREIGN KEY(pID) REFERENCES department(id),
UNIQUE INDEX(pID,name)
);
INSERT INTO department(id,pID,name,address) VALUES(uuid(),NULL,'中国电子科技集团公司第二十七研究所','河南省郑州市郑东新区博学路36号');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='中国电子科技集团公司第二十七研究所') a),'基础技术部');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='基础技术部') a),'计算机软件室');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='中国电子科技集团公司第二十七研究所') a),'测控与雷达系统事业部');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='测控与雷达系统事业部') a),'测控技术室');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='测控与雷达系统事业部') a),'遥感技术室');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='测控与雷达系统事业部') a),'功放技术室');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='测控与雷达系统事业部') a),'卫星终端室');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='中国电子科技集团公司第二十七研究所') a),'光电系统事业部');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='光电系统事业部') a),'激光技术室');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='光电系统事业部') a),'侦察告警室');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='光电系统事业部') a),'指挥控制室');
INSERT INTO department(id,pID,name) VALUES(uuid(),(SELECT a.id FROM(SELECT id FROM department WHERE name='光电系统事业部') a),'光电导航室');
#人员表
DROP TABLE IF EXISTS person;
CREATE TABLE person
(
id VARCHAR(36),
departmentID VARCHAR(36) NOT NULL,
name VARCHAR(64) NOT NULL,
cardNo VARCHAR(4),
telephone VARCHAR(32),
remark VARCHAR(255),
PRIMARY KEY(id),
FOREIGN KEY(departmentID) REFERENCES department(id),
UNIQUE INDEX(cardNo)
);
INSERT INTO person(id,departmentID,name,cardNo,telephone) VALUES
(uuid(),(SELECT id FROM department WHERE name='中国电子科技集团公司第二十七研究所'),'admin','0000','0371-61270921');
#角色表
DROP TABLE IF EXISTS role;
CREATE TABLE role
(
id VARCHAR(36),
name VARCHAR</