【MySQL】001.MySQL安装

文章目录
- 一. 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
-
这里询问我们是否要对密码组件验证进行配置,输入
y

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

-
这里询问是否要移除匿名用户,这里可以输入
y继续

-
这里询问是否禁用
root用户远程登陆,这里也可以输入y继续

-
这里询问是否移除测试数据库,我这里选择保留

-
这里询问是否重载权限表,其实就是询问是否让设置立刻生效,输入
y

-
此刻就设置完成了

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错误,通常和访问被拒绝有关。可能原因有以下几个:
- root用户的认证插件问题: 在MSQL8.0及以上版本中,默认的认证插件是cachingsha2 password,而日版本可能是mysql native password。如果客户端不支持新的插件,或者用户没有设置正确的密码,可能会导致连接问题。不过这里错误是访问被拒绝,可能更和权限有关。
- root用户的host配置: MySQL中的用户账户不仅由用户名决定,还包括host部分。例如,root@localhost和root@%是不同的账户。可能root用户没有配置允许从127.0.0.1或者所有IP(%)的连接权限,所以当使用TCP连接时,即使是在本地,也会因为没有权限而被拒绝。
- 密码问题: 可能root用户在使用TCP连接时需要的密码和 Unix socket登录时的密码不同。或者,当通过socket登录时,MySQL使用了auth_socket插件,不需要密码,而通过 TCP则需要密码,这时候如果密码不正确或者没有设置,就会报错。
- MySQL的绑定地址: 检查MySQL服务器是否绑定了127.0.0.1或者允许来自本地TCP连接的地址。如果MySQL配置文件(如my.cnf)中的bind-address设置为127.0.0.1,这应该没问题,但如果设置为localhost或者其他地址,可能会影响连接。
原因分析:
- 认证插件差异:使用
sudo mysql -u root通过Unix socket登录时,可能使用了auth_socket插件,无需密码。但通过TCP连接时,MySQL要求密码验证。 - 用户权限限制:
root用户可能仅允许从localhost(Unix socket)登录,未配置允许从127.0.0.1(TCP)登录的权限。 - 密码未设置:若
root用户未设置密码,或密码不匹配,TCP登录会失败。
解决方案:
步骤1:检查root用户的权限和认证方式
以sudo权限登录MySQL,查看用户信息:
SELECT user, host, plugin, authentication_string FROM mysql.user WHERE user = 'root';
- 若输出中
root的host为localhost且plugin为auth_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连接:
- 打开配置文件(路径可能不同):
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf - 确认
bind-address设置为127.0.0.1或0.0.0.0(后者允许所有IP,仅限测试环境):bind-address = 127.0.0.1 - 重启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) | 清除会话上下文。 |
👍 如果对你有帮助,欢迎:
- 点赞 ⭐️
- 收藏 📌
- 关注 🔔
相关文章:
【MySQL】001.MySQL安装
文章目录 一. 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 环境安…...
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…...
自启动应用程序配置之etc/xdg/autostart
在 Linux 系统中,/etc/xdg/autostart/ 目录用于存放系统级的自动启动项(.desktop 文件)。这些文件遵循 FreeDesktop.org 的规范,定义了应用程序在用户登录时自动启动的规则。 系统级 vs 用户级自动启动 系统级&a…...
在 Linux 系统(ubuntu/kylin)上安装 Docker
在 Linux 系统上安装 Docker 的步骤如下(以 Ubuntu/Debian 和 CentOS/RHEL 为例): 请用./check-config config检查内核是否支持,necessarily 必须全部enable。 以下是脚本自行复制运行: #!/usr/bin/env sh set -eEXITCODE=0# bits of this were adapted from lxc-checkco…...
【含文档+PPT+源码】基于Android家政服务系统的开发与实现
介绍视频: 课程简介: 本课程演示的是一款基于Android家政服务系统的开发与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.…...
SpringBoot + Netty + Vue + WebSocket实现在线聊天
最近想学学WebSocket做一个实时通讯的练手项目 主要用到的技术栈是WebSocket Netty Vue Pinia MySQL SpringBoot,实现一个持久化数据,单一群聊,支持多用户的聊天界面 下面是实现的过程 后端 SpringBoot启动的时候会占用一个端口ÿ…...
配置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 发…...
苹果开发者账号推送证书配置详细指南
苹果开发者账号推送证书配置详细指南 一、准备工作 苹果开发者账号 确保拥有有效的苹果开发者账号(个人/公司账号),年费已缴纳。 App ID配置 登录 Apple开发者中心。进入 Certificates, Identifiers & Profiles → Identifiers。创建或…...
3. 列表操作
【问题描述】对于一个列表,在保持非零元素相对顺序的同时,将元素中所有的数字0移动到末尾。…...
【软考-高级】【信息系统项目管理师】【论文基础】进度管理过程输入输出及工具技术的使用方法
定义 项目进度管理是为了保证项目按时完成,对项目中所需的各个过程进行管理的过程,包括规划进度、定义活动、活动优先级排序、活动持续时间、制定进度计划和控制进度。 管理基础 制定进度计划的一般步骤 选择进度计划方法(如关键路径法&a…...
TOGAF之架构标准规范-技术架构
TOGAF是工业级的企业架构标准规范,本文主要描述技术架构阶段。 如上所示,技术架构(Technology Architecture)在TOGAF标准规范中处于D阶段 技术架构阶段 技术架构阶段的主要内容包括阶段目标、阶段输入、流程步骤、阶段输出、架构…...
为什么ChatGPT选择SSE而非WebSocket?
为什么ChatGPT选择SSE而非WebSocket? 一、ChatGPT回答问题的技术逻辑 ChatGPT的响应生成基于Transformer架构和自注意力机制,其核心是通过概率预测逐词生成文本。当用户输入问题后,模型会先解析上下文,再通过预训练的庞大语料库…...
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语言初学者掌握基本的游戏开发, 我将用详细的步骤引领大家如何开发属于自己的游戏。 作者温馨提示:不要认为开发游戏很难,一些基本的游戏逻辑其实很简单, 关于游戏的开发环境也不用担心,我会详细…...
Open3d无法使用plt.get_cmap(“viridis“)着色pcd格式点云问题
在使用Open3D进行点云处理和可视化时,我们经常会遇到一个问题:直接加载PCD文件时,点云的颜色无法正确显示,但将其转换为PLY格式后再加载,颜色就能正常显示。本文将探讨这一问题的原因,并提供解决方案。 1.…...
网络故障排查实战指南:从准备到定位的全流程拆解
目录 第一章:排查前的准备工作 —— 别急着动手,先把底摸清 搞清楚故障现象:别被表象骗了 收集关键信息:把线索攒齐 做好心理准备:复杂问题不慌 第二章:排查工具箱 —— 你的 “武器” 得趁手 Wireshark:抓包界的 “显微镜” Ping:最基础但超实用的 “敲门员” …...
MCU的USB接口作为 USB CDC串口输出
前言: 如下内容是和Chatgpt的问答对话。询问了Chatgpt 关于 MCU微控制器内部的USB端口作为串口输出是怎么工作的,是否需要在上位机上安装串口驱动程序等,Chatgpt解答的很好。 正文: STM32 使用USB作为串行设备端口,需…...
【C++初阶】--- vector容器功能模拟实现
1.什么是vector? 在 C 里,std::vector 是标准模板库(STL)提供的一个非常实用的容器类,它可以看作是动态数组 2.成员变量 iterator _start;:指向 vector 中第一个元素的指针。 iterator _finish;&#x…...
函数式编程在 Java:Function、BiFunction、UnaryOperator 你真的会用?
大家好,我是你们的Java技术博主!今天我们要深入探讨Java函数式编程中的几个核心接口:Function、BiFunction和UnaryOperator。很多同学虽然知道它们的存在,但真正用起来却总是不得要领。这篇文章将带你彻底掌握它们!&am…...
Elasticsearch 学习规划
Elasticsearch 学习规划 明确学习目标与动机 场景化需求分析 - **S**:掌握Elasticsearch架构体系,熟练使用Elasticsearch 进行数据分析,Elasticsearch结合java 项目落地案例 - **M**:搜索和Elasticsearch相关GitHub项目 - **A**:每…...
