MySQL深入研究:快速安装MySQL
俗世游子:专注技术研究的程序猿
说在前面的话
上一个阶段关于Java基础,差不多相关的基础知识点都有聊到,那么这一阶段我们主要聊MySQL数据库。
MySQL基础入门
关系数据库管理系统(RDBMS)支持关系(面向表)数据模型。表的架构(关系架构)由表名称和具有固定数据类型的固定数量的属性定义。记录(实体)对应于表中的一行,并由每个属性的值组成。因此,一个关系由一组统一的记录组成。
而MySQL属于目前开源的,受欢迎程度仅次于Oracle数据库的一款关系型数据库
单机配置
工欲善其事必先利其器,下面我们先来安装
快速安装
基于RPM安装方式,下载包从这里获取:
环境
系统:CentOS 7
IP:192.168.87.201
上传文件什么的我就不说了
首先确定当前系统中没有MySQL
rpm -qa | grep mysql
什么都没有输出,说明没有。如果有的话需要先卸载掉
rpm -e 服务名
rpm解析
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
选择版本
vim /etc/yum.repos.d/mysql-community.repo
如果安装的是
MySQL5.7版本的话,那么根据如下修改
- mysql57中
enabled=0
修改成enabled=1
- 将mysql80中的
enabled=1
修改成enabled=0
我这里安装
MySQL8,默认开启的就是该版本,所以直接下一步
安装服务
yum install mysql-community-server
经过一系列下载,MySQL到这里就安装完成了
启动服务
systemctl start mysqld
到这里只能说启动了,但是没有完
基本配置
临时密码
grep 'temporary password' /var/log/mysqld.log
这个密码是MySQL为我们生成的临时密码,当前密码什么也不能做
修改密码
mysql -uroot -p
通过当前命令 + 上一步找到的密码能够进入到MySQL中,如下图
进来之后你会发现,执行每一个命令都会出现这样的错,这是说我们必须设定一个密码才能执行,那么我们这么做
You must reset your password using ALTER USER statement before executing this statement
ALTER USER USER() IDENTIFIED BY '大小写,数字,特殊字符组合的密码';
这样子,密码就设置好了,通过
exit退出,然后通过
mysql -uroot -p重新进入即可
这样我们通过命令行执行命令也就可以正常执行了:
# 列出所有的库名 show databases; # 切换到mysql库 use mysql;
当然,现在只是本机可以操作,但是无法连接到远程,下面我们继续设置
远程连接
刚才我们已经切换到
mysql库,现在我们直接操作
select host, user,authentication_string, plugin from user;
主要修改划线的两个地方
- 修改host为
%
,表示全部可以连接,并刷新
update user set host='%' where user='root'; flush privileges;
- 修改身份验证插件
# 设置密码不过期 alter user 'root'@'%' identified by '大小写,数字,特殊字符组合的密码,和上面一样' password expire never; # 修改身份验证插件 alter user 'root'@'%' identified with mysql_native_password by '大小写,数字,特殊字符组合的密码,和上面一样'; flush privileges;
通过上面两步的修改,就可以通过其他远程工具进行连接,如图
plugin
从MySQL 8.0.4开始,MySQL服务器的默认身份验证插件从
mysql_native_password更改为
caching_sha2_password, 如果是旧版本的native的话,如果不修改过来是无法进行远程连接的。其他远程工具没有试过,如果大家有尝试的话,欢迎留言,我及时更正。
更加详细的介绍,看这里:
简单SQL介绍
安装完成了,当然要迫不及待的来使用一下了,下面我们来看一些简单的SQL:
操作库
- 创建库
create database test character set='utf8mb4';
有些时候,我们不清楚某一个命令怎么用,那么该怎么办呢?除了
百度之外,最直接的方式就是查看MySQL提供的帮助文档:
# 列出全部和create相关的命令 help create; # 对当前命令进行说明,比如选项介绍,参考网址等 help create database;
第一手资料我们要明白如何获取,这也是我们能够快速学习一门技术的方式之一
- 删除库
drop database test;
建议慎用,没有恢复手段,建议跑路
操作表
创建表
create table if not exists user( id bigint primary key auto_increment comment 'ID编号', login_name varchar(64) default '' comment '登录账号', login_pwd varchar(64) default '' comment '登录密码' ) engine=innodb character set='utf8mb4';
一点一点的来说
-
create table 属于固定格式,更多详细的说明通过
help create table
来查看 - [if not exists]从字面意思也能看出来,这里是可以忽略不写的,区别在于:
当创建一张表但是已经在数据库中存在的时候,
[if not exists]不会报错,也不会中断sql的执行,但是如果不加,那么就会报错
[Err] 1050 - Table 'user' already exists
-
后面紧跟着表名
- 括号内部属于整张表的字段,也就是表的整体架构 字段名称,根据需要填写
- 字段类型,字段类型存在很多种,上面只是简单用到了两种,后面还会有专门的介绍
primary key auto_increment
:表示将该字段设置为主键并且主键自增default
: 当插入的时候不向该字段插入值的时候,mysql默认插入的内容comment
: 表示该字段的注释,和Java开发中的注释是一个意思
engine: 指定这张表使用的是哪种存储引擎,MySQL常用的两种引擎
-
InnoDB
通过
show tables查看已经创建的表
插入数据
通过 insert into固定格式插入,具体来看
通过
help insert查看更详细的说明
insert into user(login_name, login_pwd) value ('admin@sina.com', md5('123456')); insert into user(login_name, login_pwd) values ('admin@sina.com', md5('123456')), ('boss@sina.com', md5('123456'));
这里我说两点:
- user(login_name, login_pwd)
指定了字段之后,说明只需要向指定的字段中插入数据,如果没有指定的话,默认需要向全部的字段插入数据
- value和values的区别
前者插入单条记录,后者可插入多条记录
关于ON DUPLICATE KEY UPDATE的介绍:
- 表示执行插入的时候,如果当前数据已经存在,那么就执行更新操作,这里在插入数据的时候必须传入主键值作为标识
insert into user value (3, 'admin_update@sina.com', md5('123456')) on DUPLICATE key update login_name = values(login_name)
这样就做了更新操作
修改数据
update table固定格式:
update user set login_name = 'boss@sina.com' where id = 1;
其中:
set
表示要更新的字段和新值,更新多个字段通过,
分开where
表示条件,如果没有,那么更新表中全部值
简单查询
查询是整个SQL操作中最常用的,也是最复杂的部分:
select * from user;
相信这条SQL大家已经清楚了,上面也用到了很多次,如果想要看更具体的说明,通过
help select来查看,后面我们也会更加详细的介绍
select
删除数据
delete from user where id = 3;
删除数据千万不要忘记添加条件,不然就是删除表中全部数据
好了,这里只介绍一些简单的操作,让大家有个印象,后面还会有更详细的介绍
最后的话
到这里,MySQL快速入门其实就结束了,后面我们继续研究
是最复杂的部分:
select * from user;
相信这条SQL大家已经清楚了,上面也用到了很多次,如果想要看更具体的说明,通过
help select来查看,后面我们也会更加详细的介绍
select
删除数据
delete from user where id = 3;
删除数据千万不要忘记添加条件,不然就是删除表中全部数据
好了,这里只介绍一些简单的操作,让大家有个印象,后面还会有更详细的介绍
最后的话
到这里,MySQL快速入门其实就结束了,后面我们继续研究
- 在阿里云服务器上快速搭建JavaWeb环境(安装JDK、Tomcat、MySQL)+Intellij IDEA远程部署调试tomcat
- DB-Mysql-快速安装
- yum快速安装mysql
- Linux+Apache+PHP+Mysql快速安装
- 快速安装mysql
- 简单快速安装Apache+PHP+MySql服务环境(一)
- 深入研究mysql中的varchar和limit(容易被忽略的知识)
- centos7下快速安装mysql
- Centos6.5使用yum安装mysql——快速上手必备
- centos7 快速安装 mariadb(mysql)
- 基于mysql对mybatis中的foreach进行深入研究
- linux 快速安装Mysql
- 微博平台StatusNet研究(4):快速安装
- VS.NET安装部署深入研究-.NET教程,.NET Framework
- Mysql 安装失败的快速解决方法
- CentOS 6.5下快速安装MySQL 5.7.17
- centos快速安装mysql
- VS.NET安装部署深入研究
- 【mysql】Centos6.5使用yum安装mysql——快速上手必备
- centos7下快速安装mysql