mysql8安装基础操作(一)

news2024/11/20 8:35:30

一、下载mysql8.0

1.查看系统glibc版本

这里可以看到glibc版本为2.17,所以下载mysql8.0的版本时候尽量和glibc版本对应

[root@node2 ~]# rpm -qa |grep -w glibc
glibc-2.17-222.el7.x86_64
glibc-devel-2.17-222.el7.x86_64
glibc-common-2.17-222.el7.x86_64
glibc-headers-2.17-222.el7.x86_64

2.下载包

官网地址

https://downloads.mysql.com/archives/community/

如下图:

在这里插入图片描述

具体下载地址如下:

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz

3.安装

[root@node2 ~]# tar xf mysql-8.0.36-linux-glibc2.17-x86_64.tar.xz 
[root@node2 ~]# mv mysql-8.0.36-linux-glibc2.17-x86_64 /usr/local/mysql8

创建数据目录
[root@node2 ~]# mkdir -p /data/mysql/data
[root@node2 ~]# mkdir -p /data/mysql/tmp

创建用户、修改文件权限
[root@node2 ~]# useradd mysql
[root@node2 ~]# chown -R mysql:mysql /usr/local/mysql8
[root@node2 ~]# chown -R mysql:mysql /data/mysql

4.配置my.cnf

这里是最简单的配置,能够启动即可

vim /etc/my.cnf
[client]
port = 3306
socket = /data/mysql/tmp/mysql.sock

[mysql]
no-auto-rehash

[mysqld]
user    = mysql
port    = 3306
basedir = /usr/local/mysql8
datadir = /data/mysql/data
socket  = /data/mysql/tmp/mysql.sock
mysqlx_socket = /data/mysql/tmp/mysqlx.sock
pid-file = /data/mysql/tmp/mysql.pid
character-set-server = utf8mb4
skip_name_resolve = 1

5.初始化数据库

cd /usr/local/mysql8/bin/
./mysqld --initialize-insecure  --user=mysql --basedir=/usr/local/mysql8/ --datadir=/data/mysql/data/

6.启动数据库

cp /usr/local/mysql8/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
/etc/init.d/mysqld start

重启命令如下
service mysqld restart

7.开机启动

# 这样操作能成功,是因为启动脚本中有chkconfig的配置
chkconfig --add mysqld

二、database基本操作

1.mysql中的注释

在mysql中注释使用 #

2.查看所有数据库

mysql> show databases;

3.切换数据库

mysql> use sys;
Database changed

4.查看所有表

mysql> show tables;

5.创建数据库

mysql> create database mydb;
Query OK, 1 row affected (0.01 sec)

6.删除数据库

mysql> drop database mydb;
Query OK, 0 rows affected (0.01 sec)

三、表的基本操作

1.数据类型

只写一些常见的数据类型

数据类型大小用途
int4 bytes(4个字节)普通大小整数
bigint8 bytes(8个字节)大整数
char0-255 bytes定长字符串
varchar0-65535 bytes变长字符串
dateYY-MM-DD日期
datetimeYY-MM-DD HH:MM:SS日期和时间
timestamp时间戳

2.创建表

语法格式:
其中[] 中的内容可以写,也可以不写。
但是要注意:varchar类型的宽度必须指定

create table 表名(
	字段名1 类型[(宽度)] [约束条件] [comment '字段说明'],
	字段名2 类型[(宽度)] [约束条件] [comment '字段说明'],
	字段名3 类型[(宽度)] [约束条件] [comment '字段说明'],
)[表的一些设置参数]

例子:

mysql> create table student(id int,name varchar(20),age int,gender varchar(20),birthday date);

3.表结构相关操作

3.1 查看表的创建语句

mysql> show create table student;

3.2 查看表结构

mysql> desc student;

3.3 删除表

mysql> drop table student;
Query OK, 0 rows affected (0.01 sec)

3.4 添加字段

语法:

alter table 表名 add 列名 类型(长度) [约束];

例子:为student表添加about字段

mysql> alter table student add about varchar(20);

3.5 修改字段名

语法

alter table 表名 change 旧列名 新列名 类型(长度) [约束];

实例: 将about字段名改为news

alter table student change about news varchar(20);

3.6 删除列

语法:

alter table 表名 drop 列名;

例子:删除news字段

mysql> 
mysql> alter table student drop news;

3.7 修改表名

语法:

rename table 原表名 to 新表名;

例子: 将student表改为stu;

mysql> rename table student to stu;

4.insert语句

4.1 语法

语法1:根据字段名插入数据

insert into 表(字段名1,字段名2,字段名3......) values(值1,值2,值3......);

语法2:向所有列插入数据

insert into 表 values(值1,值2,值3......);

4.2 插入实例

全部插入为空值

insert into student values();

插入具体值

mysql> insert into student values(1,'zhangsan',20,'boy','2020-01-01');

5.update语句

语法:

修改所有的列
update 表名 set 字段名=值,字段名=值,......;


修改满足条件的列
update 表名 set 字段名=值,字段名=值 where 条件;

实例:

update  student set age=21 where name='zhangsan';

6.delete语句

语法:

删除表内所有内容
delete from;

删除表内指定的内容
delete from 表 whete 条件;

6.1 实例:

delete from student;

delete from student where name='zhangsan';

6.2 删除值为NULL的行

delete from student where id is NULL;

四、mysql约束

1.概念

约束的概念是出现在创建表的时候,会给字段创建对应的约束条件。约束的作用就是 “限制表中数据” 的条件

2.分类

条件语法
主键约束primary key(比较重要)
自增长约束auto_increment(比较重要)
非空约束not null
唯一性约束unique
默认约束default
零填充约束zerofill
外键约束foreign key

3.主键约束

3.1 概念

主键约束相当于 唯一约束 + 非空约束的组合。主键约束不允许重复,不允许出现空值
每个表最多只允许一个主键
当创建主键约束时,系统默认会在所在的列和列组合上建立对应的唯一索引
主键主要是为了标识一行的数据的唯一性

3.2 添加单列主键

在创建表的时候添加主键

 create table teacher(
    # 这里给id字段设置了主键
 	id int primary key,
 	name char
 );

3.3 添加多列主键

多列主键 也叫做(联合主键)
语法:

create table(
	字段1 类型 约束条件,
	......
	primary key(字段1,字段2)
	
)

3.4 alter 添加主键

如果表创建完毕了忘记了添加了主键,然后需要用alter添加

语法:

alter table 表名 add primary key(字段名);

例子:

alter table teacher add primary key(id);

3.5 删除主键

alter table  表名 drop primary key;

4.自增长约束

当主键定义为自增长后,这个主键的值就不需要用户输入数据了,而由数据库系统根据定义自动赋值
一张表只能有一列使用自增长约束
自增长字段的类型必须是整数类型
自增长的最大值受该字段数据类型的最大值限制,如果达到上线,会自动失效.
语法:在字段后边加上auto_increment

create table(
	字段1 类型 auto_increment,
	字段2 类型 约束条件,
)

例子:
一般主键约束和自增长一起出现。

create table teacher(
	id int primary key auto_increment,
	name varchar(20)
);

插入数据

insert into teacher values(NULL,'zhangsan');
insert into teacher values(NULL,'lisi');
insert into teacher values(NULL,'wangwu');

结果如下:

mysql> select * from teacher;
+----+----------+
| id | name     |
+----+----------+
|  1 | zhangsan |
|  2 | lisi     |
|  3 | wangwu   |
+----+----------+

5.非空约束

create table teacher(
	id int, 
	name char not null
);
#插入数据报错
mysql> insert into teacher values(1,NULL);
ERROR 1048 (23000): Column 'name' cannot be null

5.1 现有字段添加not null

alter tablemodify 字段 类型 not null;

6.唯一约束

语法:创建表时添加

create table teacher(
	id int, 
	name char unique
);

创建完后的表

alter table teacher add unique(id);

7.默认约束

默认约束是用来指定某列的默认值
语法:

create table teacher(
	name varchar(20),
	age int default 20
);
insert into teacher (name) values('zhangsan');

mysql> select * from teacher;
+----------+------+
| name     | age  |
+----------+------+
| zhangsan |   20 |
+----------+------+

注意:这里不能插入NULL,不然默认值不生效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1417071.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++爱好者的科目四易错点总结

科目四易错点总结 在科目四考试中,一部分内容是可以通过刷题快速掌握的,一部分内容缺因易混淆而降低我们的准确率,本文主要对后者进行总结,期待大家补充与指正。 注: 本文不是全部的知识点总结处 本文不是权威机构 本文…

Linux:利用匿名管道构建进程池

文章目录 进程池实现进程池创建信道和进程发送任务释放资源 进程池代码总结 本篇的主题是借助前面所学的基础管道实现一个进程池,那么在实现进程池前先了解进程池是什么,进程池有什么意义,进而对于进程池有一个基本的把握 进程池 给定一个进…

sql注入中的过滤问题

直接上题目: 当我输入?id1 or 11#时提示错误,从这里可以看出对面过滤了点什么导致我的语句出错了,因为我这个语句是用真的,不管放在哪都是会一定正确的,但是这里提示错误的。 然后我第一想法就是空格,我在…

代码增强LLM

大模型时代的语言模型(LLM)不仅在尺寸上变得更大了,而且训练数据也同时包含了自然语言和形式语言(代码)。作为人类和计算机之间的媒介,代码可以将高级目标转换为可执行的中间步骤,具有语法标准、…

VCRUNTIME140_1.dll丢失是怎么回事,需要如何修复

vcruntime140_1.dll 是一个动态链接库(DLL)文件,它是 Microsoft Visual C 2015 Redistributable 组件的一部分。这个文件包含了微软的 C 标准库的运行时组件,特别是与并行编程相关的部分。当开发者使用 Visual C 2015 及以上版本编…

HCIP-三层架构实验

实验拓扑 实验需求 实验思路 配置IP地址 链路聚合 vlan配置 配置生产树 实验步骤 配置IP地址 以R1为例 <Huawei>sys [Huawei]sys r1 [r1]int g0/0/02 [r1-GigabitEthernet0/0/2]ip address 12.1.1.1 24 Jan 28 2024 17:09:03-08:00 r1 %%01IFNET/4/LINK_STATE(l…

BGP:02 BGP认证

这是实验拓扑&#xff0c;物理接口IP地址来建立BGP邻居关系。 认证是指路由器对路由信息来源的可靠性及路由信息本身的完整性进行检测的机制。 下面是基本和BGP配置&#xff1a; R1: sys sysname R1 int loop 0 ip add 1.1.1.1 24 int g0/0/0 ip add 192.168.12.1 24 qbgp 1…

【vue3】Vue3 + Vite 项目搭建

Vue3 Vite 项目搭建 创建项目添加Vue Router 4路由配置添加Vant UI 组件库移动端rem适配添加iconfont字体图标库二次封装Axios请求库添加CSS预处理器Less添加全局状态管理插件Vuex 1.创建项目 Vite方式 1.1 进入开发目录, 执行指令创建新项目 更行node版本18 npm 7.x版本 su…

重写Sylar基于协程的服务器(0、搭建开发环境以及项目框架 || 下载编译简化版Sylar)

重写Sylar基于协程的服务器&#xff08;0、搭建开发环境以及项目框架 || 下载编译简化版Sylar&#xff09; 重写Sylar基于协程的服务器系列&#xff1a; 重写Sylar基于协程的服务器&#xff08;0、搭建开发环境以及项目框架 || 下载编译简化版Sylar&#xff09; 前言 sylar是…

竞赛练一练 第30期:GESP和电子学会相关题目练习

Day14&#xff1a;CIE一级2022.06_报时的公鸡 故事背景&#xff1a;公鸡在黎明时分会打鸣迎接太阳升起&#xff0c;古人也将鸡鸣声当做晨起的“闹钟”。 1. 准备工作 &#xff08;1&#xff09;背景&#xff1a;根据下图绘制两张背景&#xff1b; 01 02 &#xff08;2&…

时序分解 | MATLAB实现CEEMDAN+SE自适应经验模态分解+样本熵计算

时序分解 | MATLAB实现CEEMDANSE自适应经验模态分解样本熵计算 目录 时序分解 | MATLAB实现CEEMDANSE自适应经验模态分解样本熵计算效果一览基本介绍程序设计参考资料 效果一览 基本介绍 MATLAB实现CEEMDANSE自适应经验模态分解样本熵计算 包括频谱图 附赠案例数据 可直接运行 …

2024年社区店加盟:最火爆的项目投资小指南

在这个追求健康与品质的时代&#xff0c;社区店加盟成为了越来越多创业者的首选。 而在众多项目中&#xff0c;鲜奶吧因其独特的产品魅力和广泛的市场需求&#xff0c;成为了最火爆的投资项目之一。 作为一名拥有多年鲜奶吧经营经验的创业者&#xff0c;同时也是自媒体创业板…

C++11(中):智能指针

智能指针 1.内存泄漏1.1内存泄漏的概念以及危害1.2内存泄漏的场景1.3如何避免内存泄漏 2.智能指针的使用及原理2.1RAII2.2智能指针的原理2.3 std::auto_ptr2.4 定制删除器2.5 std::unique_ptr2.6 std::shared_ptr2.7 std::weak_ptr2.7.1 std::shared_ptr的循环引用2.7.2 循环引…

《WebKit 技术内幕》学习之十五(4):Web前端的未来

4 Cordova项目 Cordova是一个开源项目&#xff0c;能够提供将Web网页打包成本地应用格式的可运行文件。读者可能对Cordova项目陌生&#xff0c;但是大家可能对它的前身非常熟悉&#xff0c;那就是PhoneGap项目&#xff0c;它后来被Adobe公司收购。 图15-4描述了Cordova的主要工…

“Morpheus-1”的全新人工智能模型声称能引发清醒梦境

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

探索半导体制造业中的健永科技RFID读写器的应用方案

一、引言 在当今高度自动化的工业环境中&#xff0c;无线射频识别&#xff08;RFID&#xff09;技术已经成为实现高效生产的重要一环。特别是在半导体制造业中&#xff0c;由于产品的高价值和复杂性&#xff0c;生产过程的追踪和管理显得尤为重要。健永科技RFID读写器以其出色…

leetcode 第三弹

链表声明&#xff1a; * Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(n…

服务端开发小记03——vsftpd

这里写目录标题 vsftpd简介vsftpd在Linux下的安装vsftpd验证vsftpd常用命令 vsftpd简介 vsftpd是“very secure FTP daemon”的缩写&#xff0c;是一个用于Linux环境下的免费开源的ftp服务器软件。vsftpd在Linux发行版中最受推崇&#xff0c;小巧轻快&#xff0c;安全易用&…

解决:IDEA无法下载源码,Cannot download sources, sources not found for: xxxx

原因 Maven版本太高&#xff0c;遇到http协议的镜像网站会阻塞&#xff0c;要改为使用https协议的镜像网站 解决方案 1.打开设置 2. 拿到settings.xml路径 3. 将步骤2里箭头2的User settings file&#xff1a;settings.xml打开&#xff0c;作以下修改 保存即可。如果还不行…

《PCI Express体系结构导读》随记 —— 第II篇 第4章 PCIe总线概述(1)

随着现代处理器技术的发展&#xff0c;在互连领域中&#xff0c;使用高速差分总线替代并行总线是大势所趋。与单端并行信号相比&#xff0c;高速差分信号可以使用更高的时钟频率&#xff0c;使用更少的信号线&#xff0c;完成之前需要许多单端并行数据信号才能达到的总线带宽。…