当前位置: 首页 > news >正文

在 Ubuntu 上安装 MySQL 的详细指南

在Ubuntu环境中安装 mysql-server 以及 MySQL 开发包(包括头文件和动态库文件),并处理最新版本MySQL初始自动生成的用户名和密码,可以通过官方的APT包管理器轻松完成。以下是详细的步骤指南,包括从官方仓库和MySQL官方仓库安装的两种方法,并介绍如何处理自动生成的初始用户名和密码,以及如何修改root初始密码。

方法一:使用Ubuntu官方仓库安装

步骤一:更新系统包列表

首先,确保您的系统包列表是最新的:

sudo apt update
sudo apt upgrade -y

步骤二:安装 MySQL Server

使用APT安装MySQL服务器:

sudo apt install -y mysql-server

说明:

  • 该命令将安装最新版本的MySQL服务器以及相关依赖项。

步骤三:安装 MySQL 开发包

安装包含头文件和动态库文件的开发包:

sudo apt install -y libmysqlclient-dev

说明:

  • libmysqlclient-dev 包含用于开发的MySQL头文件和动态库文件。

步骤四:启动并配置 MySQL 服务

  1. 启动MySQL服务

    sudo systemctl start mysql
    
  2. 设置MySQL开机自启动

    sudo systemctl enable mysql
    
  3. 检查MySQL服务状态

    sudo systemctl status mysql
    

    您应该看到类似如下的输出,表示MySQL正在运行:

    ● mysql.service - MySQL Community ServerLoaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)Active: active (running) since ...
    

步骤五:处理初始自动生成的用户名和密码

在最新版本的MySQL安装过程中,系统会自动为root用户生成一个临时密码。您需要找到该临时密码并进行更改。

1. 查找临时密码

安装完成后,MySQL会将临时密码记录在日志文件中。使用以下命令查看日志并获取临时密码:

sudo grep 'temporary password' /var/log/mysql/error.log

您将看到类似如下的输出:

[Date Time] [Note] A temporary password is generated for root@localhost: xXxXxXxXxXx

记下该临时密码(例如 xXxXxXxXxXx)。

2. 运行安全性脚本

为了提高MySQL的安全性,并修改初始密码,建议运行官方提供的安全性脚本:

sudo mysql_secure_installation

您将被提示执行以下操作:

  1. 输入当前root密码:使用上一步骤中获取的临时密码。
  2. 设置新root密码:根据提示设置一个强密码。
  3. 移除匿名用户:建议移除。
  4. 禁止远程root登录:建议禁止以提高安全性。
  5. 移除测试数据库:建议移除。
  6. 重新加载权限表:选择是以应用更改。

示例交互:

Enter password for user root: 
You must change the password now (y/N)? Y
New password: 
Re-enter new password: 
Password updated successfully!
Remove anonymous users? (Y/n) Y
Disallow root login remotely? (Y/n) Y
Remove test database and access to it? (Y/n) Y
Reload privilege tables now? (Y/n) Y

步骤六:修改root初始密码(手动方法)

如果您需要手动修改root密码,可以按照以下步骤操作:

1. 登录MySQL

使用当前root密码登录MySQL:

sudo mysql -u root -p
2. 修改root密码

在MySQL命令行中执行以下命令以修改root用户的密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword!';
FLUSH PRIVILEGES;

说明:

  • YourNewStrongPassword! 替换为您希望设置的新密码。
3. 验证密码修改

退出MySQL并重新登录以验证新密码是否生效:

exit
sudo mysql -u root -p

输入新密码后,您应能成功登录。

4. 忘记root密码时的重置方法

如果您忘记了root密码,可以通过以下步骤重置:

  1. 停止MySQL服务

    sudo systemctl stop mysql
    
  2. 以安全模式启动MySQL

    sudo mysqld_safe --skip-grant-tables &
    
  3. 登录MySQL

    sudo mysql -u root
    
  4. 修改root密码

    在MySQL命令行中执行:

    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword!';
    FLUSH PRIVILEGES;
    EXIT;
    
  5. 停止安全模式下的MySQL

    首先找到MySQL进程ID:

    sudo killall mysqld
    
  6. 重新启动MySQL服务

    sudo systemctl start mysql
    
  7. 使用新密码登录

    sudo mysql -u root -p
    

步骤七:验证安装

  1. 登录MySQL

    sudo mysql -u root -p
    

    输入您在 mysql_secure_installation 或手动修改时设置的新密码后,您将进入MySQL命令行界面。

  2. 检查MySQL版本

    在MySQL命令行中运行:

    SELECT VERSION();
    

    您将看到MySQL的版本信息。

步骤八:配置防火墙(可选)

如果您需要通过网络访问MySQL,确保防火墙允许3306端口的流量。

  1. 如果使用UFW防火墙

    sudo ufw allow 'MySQL'
    

    或者更具体地:

    sudo ufw allow 3306/tcp
    
  2. 重新加载防火墙规则

    sudo ufw reload
    

注意: 为了安全起见,建议仅允许受信任的IP地址访问MySQL服务。

方法二:使用MySQL官方仓库安装最新版本

如果您需要安装MySQL的最新版本,可以使用MySQL官方提供的APT仓库。

步骤一:下载并添加MySQL APT仓库

  1. 下载MySQL APT仓库配置包

    wget https://dev.mysql.com/get/mysql-apt-config_0.8.26-1_all.deb
    

    注意: 请访问 MySQL APT Repository 页面,确保下载最新版本的 mysql-apt-config 包。

  2. 安装MySQL APT仓库配置包

    sudo dpkg -i mysql-apt-config_0.8.26-1_all.deb
    

    在安装过程中,您将看到一个配置界面,选择您需要的MySQL版本(如8.0),然后确认。

  3. 更新系统包列表

    sudo apt update
    

步骤二:安装 MySQL Server

sudo apt install -y mysql-server

步骤三:安装 MySQL 开发包

sudo apt install -y libmysqlclient-dev

步骤四至步骤七

按照方法一中的 步骤四步骤八 完成MySQL服务的启动、配置、安全性设置和验证。

附加步骤:配置MySQL远程访问(可选)

如果需要从远程主机访问MySQL服务器,需进行以下配置:

步骤一:修改MySQL配置文件

  1. 编辑MySQL配置文件

    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    
  2. 找到 bind-address 行并修改

    将:

    bind-address = 127.0.0.1
    

    修改为:

    bind-address = 0.0.0.0
    

    说明: 这将允许MySQL监听所有IP地址。

  3. 保存并关闭文件(按 Ctrl + O 保存,按 Ctrl + X 退出)

步骤二:重启MySQL服务

sudo systemctl restart mysql

步骤三:创建远程访问用户

  1. 登录MySQL

    sudo mysql -u root -p
    
  2. 创建新用户并授予权限

    CREATE USER 'username'@'%' IDENTIFIED BY 'password';
    GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    

    注意: 替换 usernamepassword 为您的实际用户名和密码。

步骤四:配置防火墙

确保防火墙允许来自远程主机的连接:

sudo ufw allow 3306/tcp
sudo ufw reload

注意: 为了安全起见,建议限制允许访问MySQL的IP地址。例如,只允许特定IP访问:

sudo ufw allow from <your_ip_address> to any port 3306

<your_ip_address> 替换为允许访问的IP地址。

常见问题排查

1. 无法启动MySQL服务

解决方案:

  • 查看错误日志:

    sudo journalctl -u mysql
    
  • 检查配置文件是否有语法错误。

  • 确保没有端口冲突(如其他服务占用了3306端口)。

2. 无法连接到MySQL服务器

解决方案:

  • 确保MySQL服务正在运行:

    sudo systemctl status mysql
    
  • 检查防火墙设置是否允许连接。

  • 确认MySQL用户有足够的权限,并且密码正确。

  • 如果是远程连接,确保MySQL配置文件中的 bind-address 设置正确,并且用户权限允许从远程主机连接。

3. 安装 libmysqlclient-dev 后仍提示找不到头文件

解决方案:

  • 确认开发包安装成功:

    dpkg -l | grep libmysqlclient-dev
    
  • 检查头文件路径是否正确,例如 /usr/include/mysql/

  • 在编译时,确保编译器能够找到头文件和库文件,可能需要在编译命令中添加 -I/usr/include/mysql-L/usr/lib/mysql 等选项。

4. 忘记root密码

解决方案:

参考步骤六中的 忘记root密码时的重置方法,通过停止MySQL服务、以安全模式启动、修改密码、重启服务等步骤来重置root密码。

相关文章:

在 Ubuntu 上安装 MySQL 的详细指南

在Ubuntu环境中安装 mysql-server 以及 MySQL 开发包&#xff08;包括头文件和动态库文件&#xff09;&#xff0c;并处理最新版本MySQL初始自动生成的用户名和密码&#xff0c;可以通过官方的APT包管理器轻松完成。以下是详细的步骤指南&#xff0c;包括从官方仓库和MySQL官方…...

Java 优化springboot jar 内存 年轻代和老年代的比例 减少垃圾清理耗时 如调整 -XX:NewRatio

-XX:NewRatio 是 Java Virtual Machine (JVM) 的一个选项&#xff0c;用于调整 年轻代&#xff08;Young Generation&#xff09;和 老年代&#xff08;Old Generation&#xff09;之间的内存比例。 1. 含义 XX:NewRatioN 用于指定 老年代 与 年轻代 的内存比例。 N 的含义&…...

嵌入式驱动RK3566 HDMI eDP MIPI 背光 屏幕选型与调试提升篇-eDP屏

eDP是嵌入式显示端口&#xff0c;具有高数据传输速率&#xff0c;高带宽&#xff0c;高分辨率、高刷新率、低电压、简化接口数量等特点。现大多数笔记本电脑都是用的这种接口。整个eDP是很复杂的&#xff0c;这里我们不讲底层原理&#xff0c;我们先掌握如何用泰山派来驱动各种…...

在Java虚拟机(JVM)中,方法可以分为虚方法和非虚方法。

在Java虚拟机(JVM)中,方法可以分为虚方法和非虚方法。以下是关于这两种方法的详细解释: 一、虚方法(Virtual Method) 定义:虚方法是指在运行时由实例的实际类型决定的方法。在Java中,所有的非私有、非静态、非final方法都是虚方法。当调用一个虚方法时,JVM会根据实…...

【windows】sonarqube起不来的问题解决

1. 现象与本质 因JDK的问题&#xff08;比如版本太低或者太高,推荐JDK17&#xff09;或者其他环境因素&#xff0c;导致sonarqube启动后自动关闭了。 从日志来看&#xff0c;根本看不出来什么&#xff0c;只有警告&#xff0c;没有ERROR&#xff0c;警告也不是本质问题&#…...

golang异常

panic如果不处理会导致应用进程挂掉 defer recover可以处理这种情况 一个recover只处理自己协程 产生panic的情况 空指针 数组越界 空map中添加键值对 错误&#xff0c;error接口&#xff0c;不严重 error.wrapof解决嵌套问题或者error.unwrap erroe.is方法&#xff0c;判断是…...

搭建MongoDB

title: 搭建MongoDB date: 2024-11-30 23:30:00 categories: - 服务器 tags: - MongoDB - 大数据搭建MongoDB 环境&#xff1a;Centos 7-2009 1. 创建MongoDB的国内yum源 # 下载Centos7对应最新版7.0.15的安装包 cat >> /etc/yum.repos.d/mongodb.repo << &quo…...

Android中坐标体系知识超详细讲解

说来说去都不如画图示意简单易懂啊&#xff01;&#xff01;&#xff01;真是的&#xff01; 来吧先上张图&#xff01; &#xff08;一&#xff09;首先明确一下android 中的坐标系统&#xff1a; 屏幕的左上角是坐标系统原点&#xff08;0,0&#xff09; 原点向右延伸是X轴正…...

不需要服务器,使用netlify快速部署自己的网站

Netlify简介 1.1 Netlify的功能与特点 Netlify 是一个功能强大的静态网站托管平台&#xff0c;它不仅提供了简单的网站部署功能&#xff0c;还集成了许多现代化的开发工具和服务&#xff0c;帮助开发者更高效地构建、部署和管理网站。Netlify 的核心功能包括&#xff1a; 自动…...

Swin transformer 论文阅读记录 代码分析

该篇文章&#xff0c;是我解析 Swin transformer 论文原理&#xff08;结合pytorch版本代码&#xff09;所记&#xff0c;图片来源于源paper或其他相应博客。 代码也非原始代码&#xff0c;而是从代码里摘出来的片段&#xff0c;配上简单数据&#xff0c;以便理解。 当然&…...

信息安全概论

文章目录 预测题重要考点1.遇到什么威胁有什么漏洞怎么缓解分析题2.网络安全现状分析 2.网络安全亮点 时间信息安全概论期末简答题软件学院实验室服务器安全风险分析与PDRR策略 1.1 信息时代的特点1.2 信息安全威胁1.3信息安全趋势1.4 研究网络与信息安全的意义2.1安全风险分析…...

2024年12月16日Github流行趋势

项目名称&#xff1a;PDFMathTranslate 项目维护者&#xff1a;Byaidu reycn hellofinch Wybxc YadominJinta项目介绍&#xff1a;基于 AI 完整保留排版的 PDF 文档全文双语翻译&#xff0c;支持 Google/DeepL/Ollama/OpenAI 等服务&#xff0c;提供 CLI/GUI/Docker。项目star数…...

Go 1.24即将到来!

Go 1.24 尚未发布。以下是正在撰写中的发布说明&#xff0c;预计 Go 1.24 将于 2025 年 2 月发布。 语言改进 Go 1.24 现在全面支持 泛型类型别名&#xff1a;类型别名可以像定义类型一样被参数化。详情请参阅语言规范。目前&#xff0c;可通过设置 GOEXPERIMENTnoaliastypep…...

FFmpeg库之ffplay

文章目录 FFmpeg环境搭建ffplay使用通用选项视频选项音频选项快捷键使用滤镜直播拉流 FFmpeg环境搭建 FFmpeg官网 FFmpeg环境搭建 ./configure \--prefix"$HOME/ffmpeg" \--extra-cflags"-I$HOME/ffmpeg/include" \--extra-ldflags"-L$HOME/ffmpeg…...

scala中模式匹配的应用

package test34object test6 {case class Person(name:String)case class Student(name:String, className:String)// match case 能根据 类名和属性的信息&#xff0c;匹配到对应的类// 注意&#xff1a;// 1 匹配的时候&#xff0c;case class的属性个数要对上// 2 属性名不需…...

WebRTC搭建与应用(一)-ICE服务搭建

WebRTC搭建与应用(一) 近期由于项目需要在研究前端WebGL渲染转为云渲染&#xff0c;借此机会对WebRTC、ICE信令协议等有了初步了解&#xff0c;在此记录一下&#xff0c;以防遗忘。 第一章 ICE服务搭建 文章目录 WebRTC搭建与应用(一)前言一、ICE是什么&#xff1f;二、什么…...

【计算机视觉基础CV】03-深度学习图像分类实战:鲜花数据集加载与预处理详解

本文将深入介绍鲜花分类数据集的加载与处理方式&#xff0c;同时详细解释代码的每一步骤并给出更丰富的实践建议和拓展思路。以实用为导向&#xff0c;为读者提供从数据组织、预处理、加载到可视化展示的完整过程&#xff0c;并为后续模型训练打下基础。 前言 在计算机视觉的深…...

Kafka学习篇

Architecture 系统间解耦&#xff0c;异步通信&#xff0c;削峰填谷 Topic 消息主题&#xff0c;用于存储消息 Partition 分区&#xff0c;通过扩大分区&#xff0c;可以提高存储量 Broker 部署Kafka服务的设备 Leader kafka主分区 Follwer kafka从分区 高性能之道&#xff1a…...

冬日养仓鼠小指南:温暖与陪伴同行

随着冬日的脚步悄然来临&#xff0c;家中可爱的小仓鼠也需要我们给予更多的关怀与呵护。仓鼠虽小&#xff0c;但它们的冬日养护却大有学问&#xff0c;关乎着这些小生命能否健康快乐地度过寒冷季节。 保暖是冬季养仓鼠的首要任务。我们可以为仓鼠的小窝增添一些保暖材料&#…...

【计算机视觉基础CV】05 - 深入解析ResNet与GoogLeNet:从基础理论到实际应用

引言 在上一篇文章中&#xff0c;我们详细介绍了ResNet与GoogLeNet的网络结构、设计理念及其在图像分类中的应用。本文将继续深入探讨如何在实际项目中应用这些模型&#xff0c;特别是如何保存训练好的模型、加载模型以及使用模型进行新图像的预测。通过这些步骤&#xff0c;读…...

Ubuntu20.04下HPC_SDK加速库安装避坑指南(附OpenACC测试代码)

Ubuntu 20.04下HPC_SDK加速库深度实战指南&#xff1a;从安装到OpenACC性能调优 在当今高性能计算领域&#xff0c;GPU加速已成为提升计算效率的关键技术。NVIDIA HPC SDK作为一套全面的开发工具包&#xff0c;为开发者提供了从编译器到性能分析的全套解决方案。本文将带您深入…...

逆向视角看iOS加固:从机器码到伪代码,手把手教你分析加固效果与潜在风险

逆向视角看iOS加固&#xff1a;从机器码到伪代码的深度解析 当你在App Store下载一个应用时&#xff0c;可能不会想到这个看似简单的IPA文件背后隐藏着怎样的技术博弈。作为iOS开发者或安全研究员&#xff0c;我们常常需要从另一个角度思考——不是如何保护自己的应用&#xf…...

避坑指南:通达信指标加密的4种方法实测,哪种最难被破解?

通达信指标加密技术深度测评&#xff1a;从入门到防破解实战 在量化交易和个性化指标分析领域&#xff0c;通达信作为国内主流证券分析软件&#xff0c;其自定义指标功能一直备受投资者青睐。但随之而来的指标被盗用、滥用问题也让许多开发者头疼不已——一个经过数月验证的高胜…...

MusePublic Art Studio参数详解:随机种子锁定与艺术风格复现方法

MusePublic Art Studio参数详解&#xff1a;随机种子锁定与艺术风格复现方法 1. 理解随机种子&#xff1a;艺术创作的"基因密码" 在AI图像生成领域&#xff0c;随机种子就像是每幅作品的DNA序列。它决定了生成过程中的随机性因素&#xff0c;是控制输出结果一致性的…...

AI印象派艺术工坊WebUI定制:前端界面修改实战案例

AI印象派艺术工坊WebUI定制&#xff1a;前端界面修改实战案例 1. 引言 你有没有想过&#xff0c;自己也能像艺术家一样&#xff0c;把随手拍的照片变成一幅幅精美的画作&#xff1f;素描、彩铅、油画、水彩&#xff0c;这些听起来需要多年绘画功底才能完成的作品&#xff0c;…...

SpringBoot 静态资源加载失败:favicon.ico 缺失问题解析

1. 为什么你的SpringBoot项目总在报favicon.ico缺失&#xff1f; 每次启动SpringBoot项目时&#xff0c;控制台总是刷出一堆红色警告&#xff0c;其中最让人头疼的就是"No static resource favicon.ico"这个错误。作为一个踩过无数次坑的老司机&#xff0c;我可以负…...

SpringBoot+Mybatis多数据源实战:TDengine与MySQL混搭的物联网数据存储方案

SpringBootMybatis多数据源实战&#xff1a;TDengine与MySQL混搭的物联网数据存储方案 在物联网系统开发中&#xff0c;数据存储架构的设计往往面临一个核心矛盾&#xff1a;海量设备时序数据的高效存储与业务数据的复杂关系处理如何平衡&#xff1f;传统单一数据库方案要么在时…...

如何用d2s-editor高效管理暗黑破坏神2存档:终极可视化编辑指南

如何用d2s-editor高效管理暗黑破坏神2存档&#xff1a;终极可视化编辑指南 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor d2s-editor是一款免费开源的Web版暗黑破坏神2存档编辑器&#xff0c;它将复杂的二进制存档文件转化为直…...

告别广告侵扰:AdGuard广告拦截扩展全平台部署指南

告别广告侵扰&#xff1a;AdGuard广告拦截扩展全平台部署指南 【免费下载链接】AdguardBrowserExtension AdGuard browser extension 项目地址: https://gitcode.com/gh_mirrors/ad/AdguardBrowserExtension 副标题&#xff1a;从新手到高手的一站式配置方案 一、价值定…...

戴森吸尘器电池锁死?终极开源固件修复指南拯救你的设备

戴森吸尘器电池锁死&#xff1f;终极开源固件修复指南拯救你的设备 【免费下载链接】FU-Dyson-BMS (Unofficial) Firmware Upgrade for Dyson V6/V7 Vacuum Battery Management System 项目地址: https://gitcode.com/gh_mirrors/fu/FU-Dyson-BMS 当你的戴森V6/V7吸尘器…...