【MySQL】001.MySQL安装

news2025/4/18 18:54:56

在这里插入图片描述

文章目录

  • 一. MySQL在Ubuntu 20.04 环境安装
    • 1.1 更新软件包列表
    • 1.2 安装MySQL服务器
    • 1.3 配置安全设置
    • 1.4 检查mysql server是否正在运行
    • 1.5 进行连接
    • 1.6 查询自带的数据库
  • 二. 配置文件的修改
  • 三. MySQL连接TCP/IP时的登陆问题
  • 四. MySQL中的命令

一. MySQL在Ubuntu 20.04 环境安装

1.1 更新软件包列表

root@hcss-ecs-eaf1:~/MySQL# sudo apt-get update

在这里插入图片描述

1.2 安装MySQL服务器

root@hcss-ecs-eaf1:~/MySQL# sudo apt-get install mysql-server

在这里插入图片描述

1.3 配置安全设置

root@hcss-ecs-eaf1:~/MySQL# sudo mysql_secure_installation
  1. 这里询问我们是否要对密码组件验证进行配置,输入y
    在这里插入图片描述

  2. 这里询问我们强制密码强度,0是低,要求密码长度至少八位。1是中等,长度至少八位,数字大小写混合外加特殊字符。2是强,在中等的基础上和字典进行比对,排除高危密码。
    在这里插入图片描述

  3. 这里询问是否要移除匿名用户,这里可以输入y继续
    在这里插入图片描述

  4. 这里询问是否禁用root用户远程登陆,这里也可以输入y继续
    在这里插入图片描述

  5. 这里询问是否移除测试数据库,我这里选择保留
    在这里插入图片描述

  6. 这里询问是否重载权限表,其实就是询问是否让设置立刻生效,输入y
    在这里插入图片描述

  7. 此刻就设置完成了
    在这里插入图片描述

1.4 检查mysql server是否正在运行

root@hcss-ecs-eaf1:~/MySQL# systemctl status mysql.service

在这里插入图片描述

1.5 进行连接

root@hcss-ecs-eaf1:~/MySQL# sudo mysql -u root -p

在这里插入图片描述
在这里插入图片描述

1.6 查询自带的数据库

mysql> show schemas;

在这里插入图片描述

二. 配置文件的修改

root@hcss-ecs-eaf1:~/MySQL# vim /etc/mysql/mysql.conf.d/mysqld.cnf

常见配置项示例

# 绑定地址(允许远程访问时改为 0.0.0.0)
bind-address            = 127.0.0.1

# 监听端口(默认3306)
port                    = 3306

# 数据存储目录
datadir                 = /var/lib/mysql

# 字符集配置(避免乱码)
[mysqld]
character-set-server    = utf8mb4
collation-server        = utf8mb4_unicode_ci

# 最大连接数
max_connections         = 200

# 查询缓存(按需启用)
query_cache_type        = 1
query_cache_size        = 64M

# 日志配置(可选)
general_log_file        = /var/log/mysql/mysql.log
general_log             = 1
slow_query_log          = 1
slow_query_log_file     = /var/log/mysql/mysql-slow.log

重启MySQL并验证

sudo systemctl restart mysql

检查配置是否生效

-- 查看字符集
SHOW VARIABLES LIKE 'character_set_server';

-- 查看最大连接数
SHOW VARIABLES LIKE 'max_connections';

-- 查看 InnoDB 缓冲池大小
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';

三. MySQL连接TCP/IP时的登陆问题

mysql中用sudo mysql -u root -p可以登陆上,但是用mysql -h 127.0.0.1 -P 3306 -u root -p登陆时出现ERROR1698(28000)是怎么回事?
首先这两种登陆方式的区别:使用sudo mysql -u root -p登陆时,实际上是以系统root用户的权限来运行MySQL客户端,这时候可能绕过了某些权限验证,比如Unixsocket认证方式。而使命令加上-和127.0.0.1则是通过TCP/IP连接到本地MySQL服务器,这时候可能需要正确的用户名和密码,并且用户需要有远程或本地TCP连接的权限。
接下来错误码是1698,对应的是28000错误,通常和访问被拒绝有关。可能原因有以下几个:

  1. root用户的认证插件问题: 在MSQL8.0及以上版本中,默认的认证插件是cachingsha2 password,而日版本可能是mysql native password。如果客户端不支持新的插件,或者用户没有设置正确的密码,可能会导致连接问题。不过这里错误是访问被拒绝,可能更和权限有关。
  2. root用户的host配置: MySQL中的用户账户不仅由用户名决定,还包括host部分。例如,root@localhost和root@%是不同的账户。可能root用户没有配置允许从127.0.0.1或者所有IP(%)的连接权限,所以当使用TCP连接时,即使是在本地,也会因为没有权限而被拒绝。
  3. 密码问题: 可能root用户在使用TCP连接时需要的密码和 Unix socket登录时的密码不同。或者,当通过socket登录时,MySQL使用了auth_socket插件,不需要密码,而通过 TCP则需要密码,这时候如果密码不正确或者没有设置,就会报错。
  4. MySQL的绑定地址: 检查MySQL服务器是否绑定了127.0.0.1或者允许来自本地TCP连接的地址。如果MySQL配置文件(如my.cnf)中的bind-address设置为127.0.0.1,这应该没问题,但如果设置为localhost或者其他地址,可能会影响连接。

原因分析:

  1. 认证插件差异:使用sudo mysql -u root通过Unix socket登录时,可能使用了auth_socket插件,无需密码。但通过TCP连接时,MySQL要求密码验证。
  2. 用户权限限制root用户可能仅允许从localhost(Unix socket)登录,未配置允许从127.0.0.1(TCP)登录的权限。
  3. 密码未设置:若root用户未设置密码,或密码不匹配,TCP登录会失败。

解决方案:
步骤1:检查root用户的权限和认证方式
以sudo权限登录MySQL,查看用户信息:

SELECT user, host, plugin, authentication_string FROM mysql.user WHERE user = 'root';
  • 若输出中roothostlocalhostpluginauth_socket,说明需要通过密码认证调整。
    在这里插入图片描述

步骤2:修改root用户的认证插件并设置密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;
  • 将认证插件改为mysql_native_password,并设置密码。

步骤3:允许root通过TCP连接(可选)
若需允许从127.0.0.1登录:

CREATE USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY '你的密码';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' WITH GRANT OPTION;
FLUSH PRIVILEGES;

步骤4:检查MySQL绑定地址
确保MySQL配置文件允许TCP连接:

  1. 打开配置文件(路径可能不同):
    sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
    
  2. 确认bind-address设置为127.0.0.10.0.0.0(后者允许所有IP,仅限测试环境):
    bind-address = 127.0.0.1
    
  3. 重启MySQL服务:
    sudo systemctl restart mysql
    

步骤5:使用密码通过TCP连接

mysql -h 127.0.0.1 -P 3306 -u root -p

输入步骤2中设置的密码,即可成功登录。

注意事项

  • 安全建议:生产环境中避免使用root@%,建议限制IP并设置强密码。
  • 插件兼容性:若客户端不支持caching_sha2_password,改用mysql_native_password

四. MySQL中的命令

MySQL 命令列表:
注意: 所有文本命令必须位于行首,并以“;”结尾

指令功能
? (\?)“help”的同义词。
clear (\c)清除当前输入的语句。
connect (\r)重新连接到服务器。可选参数为数据库名和主机名。
delimiter (\d)设置语句分隔符。
edit (\e)使用 $EDITOR 编辑命令。
ego (\G)将命令发送到 MySQL 服务器,垂直显示结果。
exit (\q)退出 MySQL。与 quit 相同。
go (\g)将命令发送到 MySQL 服务器。
help (\h)显示此帮助信息。
nopager (\n)禁用分页器,将结果打印到标准输出。
notee (\t)不写入输出文件。
pager (\P)设置分页器 [to_pager]。通过分页器打印查询结果。
print (\p)打印当前命令。
prompt (\R)更改您的 MySQL 提示符。
quit (\q)退出 MySQL。
rehash (#)重建补全哈希表。
source (.)执行 SQL 脚本文件。将文件名作为参数。
status (\s)从服务器获取状态信息。
system (\!)如果启用,执行系统 shell 命令。
tee (\T)设置输出文件 [to_outfile]。将所有内容追加到给定的输出文件中。
use (\u)使用另一个数据库。将数据库名作为参数。字符集 (\C) 切换到另一个字符集。处理多字节字符集的二进制日志时可能需要。
警告 (\W)每条语句后显示警告。
不显示警告 (\w)每条语句后不显示警告。
重置连接 (\x)清除会话上下文。

👍 如果对你有帮助,欢迎:

  • 点赞 ⭐️
  • 收藏 📌
  • 关注 🔔

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

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

相关文章

vue 入门:组件事件

文章目录 vue介绍vue 入门简单示例自定义组件事件 vue介绍 vue2 官网 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层。 vue 入门 Vue.js 的核心是一个允许采用简洁的模板语…

数据质量问题中,数据及时性怎么保证?如何有深度体系化回答!

数据治理,数据质量这快是中大厂,高阶大数据开发面试必备技能,企业基于大数据底座去做数仓,那么首先需要保障的就是数据质量。 数据质量的重要性在现代企业中变得越发突出。以下是数据质量的几个关键方面,说明其对企业…

数据可视化 —— 折线图应用(大全)

一、导入需要的库 # Matplotlib 是 Python 最常用的绘图库,pyplot 提供了类似 MATLAB 的绘图接口 import matplotlib.pyplot as plt import numpy as np import pandas as pd 二、常用的库函数 plt.plot(x轴,y轴):plot()是画折线图的函数。 plt.xlabe…

什么是中性线、零线、地线,三相四线制如何入户用电

在变压器三相电侧,按照星形连接法,有一个中心点,这根线引出来的线接不接地:不接地就是中性线,接地就是零线 下面就是没有接地:中性线 接地了以后就可以叫做零线了 三相电在高压输电的时候是没有零线的&a…

【含文档+PPT+源码】基于Android家政服务系统的开发与实现

介绍视频: 课程简介: 本课程演示的是一款基于Android家政服务系统的开发与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.…

配置mac mini M4 的一些软件

最近更换了 mac mini M4 ,想要重新下载配置软件 ,记录一下。 Homebrew是什么? homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等功能。通过简单的指令可以实现包管理,而不用关心各种…

Java——抽象方法抽象类 接口 详解及综合案例

1.抽象方法抽象类 介绍 抽象方法: 将共性的行为(方法)抽取到父类之后, 由于每一个子类执行的内容是不一样, 所以,在父类中不能确定具体的方法体。 该方法就可以定义为抽象方法。 抽象类: 如果一个类中存在抽象方法,那么该类就必须…

【计网】一二章习题

1. (单选题, 3 分) 假设主机A和B之间的链路带宽为100Mbps,主机A的网卡速率为1Gbps,主机B的网卡速率为10Mbps,主机A给主机B发送数据的最高理论速率为( )。 A. 100Mbps B. 1Gbps C. 1Mbps D. 10Mbps 正确答案 D 发…

【软考-高级】【信息系统项目管理师】【论文基础】进度管理过程输入输出及工具技术的使用方法

定义 项目进度管理是为了保证项目按时完成,对项目中所需的各个过程进行管理的过程,包括规划进度、定义活动、活动优先级排序、活动持续时间、制定进度计划和控制进度。 管理基础 制定进度计划的一般步骤 选择进度计划方法(如关键路径法&a…

TOGAF之架构标准规范-技术架构

TOGAF是工业级的企业架构标准规范,本文主要描述技术架构阶段。 如上所示,技术架构(Technology Architecture)在TOGAF标准规范中处于D阶段 技术架构阶段 技术架构阶段的主要内容包括阶段目标、阶段输入、流程步骤、阶段输出、架构…

Ansys Electronics 变压器 ACT

你好, 在本博客中,我将讨论如何使用 Ansys 电子变压器 ACT 自动快速地设计电力电子电感器或变压器。我将逐步介绍设计和创建电力电子变压器示例的步骤,该变压器为同心组件,双绕组,采用正弦电压激励,并应用…

十三种物联网/通信模块综合对比——《数据手册--物联网/通信模块》

物联网/通信模块 名称 功能 应用场景 USB转换模块 用于将USB接口转换为其他类型的接口,如串口、并口等,实现不同设备之间的通信。 常用于计算机与外部设备(如打印机、扫描仪等)的连接,以及数据传输和设…

Redis安装(Windows环境)

文章目录 Resid简介:下载Redis启动Redis服务设置Windows服务常用的Redis服务命令 Resid简介: Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。 Redis通常…

FreeRTOS项目工程完善指南:STM32F103C8T6系列

FreeRTOS项目工程完善指南:STM32系列 本文是FreeRTOS STM32开发系列教程的一部分。我们将完善之前移植的FreeRTOS工程,添加串口功能并优化配置文件。 更多优质资源,请访问我的GitHub仓库:https://github.com/Despacito0o/FreeRTO…

论坛系统(测试报告)

文章目录 一、项目介绍二、设计测试用例三、自动化测试用例的部分展示用户名或密码错误登录成功编辑自己的帖子成功修改个人信息成功回复帖子信息成功 四、性能测试总结 一、项目介绍 本平台是用Java开发,基于SpringBoot、SpringMVC、MyBatis框架搭建的小型论坛系统…

【汽车产品开发项目管理——端到端的汽车产品诞生流程】

MPU:集成运算器、寄存器和控制器的中央处理器芯片 MCU:微控制单元,将中央处理器CPU、存储器ROM/RAM、计数器、IO接口及多种外设模块集成在单一芯片上的微型计算机系统。 汽车产品开发项目属性:临时性、独特性、渐进明细性、以目标…

从零到有的游戏开发(visual studio 2022 + easyx.h)

引言 本文章适用于C语言初学者掌握基本的游戏开发, 我将用详细的步骤引领大家如何开发属于自己的游戏。 作者温馨提示:不要认为开发游戏很难,一些基本的游戏逻辑其实很简单, 关于游戏的开发环境也不用担心,我会详细…

【C++初阶】--- vector容器功能模拟实现

1.什么是vector? 在 C 里,std::vector 是标准模板库(STL)提供的一个非常实用的容器类,它可以看作是动态数组 2.成员变量 iterator _start;:指向 vector 中第一个元素的指针。 iterator _finish;&#x…

Elasticsearch 学习规划

Elasticsearch 学习规划 明确学习目标与动机 场景化需求分析 - **S**:掌握Elasticsearch架构体系,熟练使用Elasticsearch 进行数据分析,Elasticsearch结合java 项目落地案例 - **M**:搜索和Elasticsearch相关GitHub项目 - **A**:每…

LVM 扩容详解

目录 一、LVM扩容 1. 查看磁盘分区情况: 2. 查看pv、vg、lv 情况 3. 将新硬盘分区初始化 4. 将初始化后的分区添加到VG中 5. 查看逻辑卷的设备路径 6. VG分配给lv 二、扩展文件系统 1.确认文件系统类型 三、检验 一、LVM扩容 1. 查看磁盘分区情况: …