AI智能
改变未来

MySQL深入研究:快速安装MySQL


俗世游子:专注技术研究的程序猿

说在前面的话

上一个阶段关于Java基础,差不多相关的基础知识点都有聊到,那么这一阶段我们主要聊MySQL数据库

MySQL基础入门

关系数据库管理系统(RDBMS)支持关系(面向表)数据模型。表的架构(关系架构)由表名称和具有固定数据类型的固定数量的属性定义。记录(实体)对应于表中的一行,并由每个属性的值组成。因此,一个关系由一组统一的记录组成。

MySQL属于目前开源的,受欢迎程度仅次于Oracle数据库的一款关系型数据库

单机配置

工欲善其事必先利其器,下面我们先来安装

快速安装

基于RPM安装方式,下载包从这里获取:

MySQL下载地址

环境

系统: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的话,如果不修改过来是无法进行远程连接的。其他远程工具没有试过,如果大家有尝试的话,欢迎留言,我及时更正。

更加详细的介绍,看这里:

MySQL身份验证插件调整

简单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
    • MyISAM
  • character set:字符集
  • 通过

    show tables

    查看已经创建的表

    插入数据

    通过 insert into固定格式插入,具体来看

    通过

    help insert

    查看更详细的说明

    insert intouser(login_name, login_pwd)value (\'admin@sina.com\', md5(\'123456\'));insert intouser(login_name, login_pwd)values(\'admin@sina.com\', md5(\'123456\')),(\'boss@sina.com\', md5(\'123456\'));

    这里我说两点:

    • user(login_name, login_pwd)

    指定了字段之后,说明只需要向指定的字段中插入数据,如果没有指定的话,默认需要向全部的字段插入数据

    • valuevalues的区别

    前者插入单条记录,后者可插入多条记录

    关于ON DUPLICATE KEY UPDATE的介绍:

    • 表示执行插入的时候,如果当前数据已经存在,那么就执行更新操作,这里在插入数据的时候必须传入主键值作为标识
    insert intouservalue (3, \'admin_update@sina.com\', md5(\'123456\'))on DUPLICATE key updatelogin_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快速入门其实就结束了,后面我们继续研究

    赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » MySQL深入研究:快速安装MySQL