在 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 服务
-
启动MySQL服务
sudo systemctl start mysql
-
设置MySQL开机自启动
sudo systemctl enable mysql
-
检查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
您将被提示执行以下操作:
- 输入当前root密码:使用上一步骤中获取的临时密码。
- 设置新root密码:根据提示设置一个强密码。
- 移除匿名用户:建议移除。
- 禁止远程root登录:建议禁止以提高安全性。
- 移除测试数据库:建议移除。
- 重新加载权限表:选择是以应用更改。
示例交互:
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密码,可以通过以下步骤重置:
-
停止MySQL服务
sudo systemctl stop mysql
-
以安全模式启动MySQL
sudo mysqld_safe --skip-grant-tables &
-
登录MySQL
sudo mysql -u root
-
修改root密码
在MySQL命令行中执行:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword!'; FLUSH PRIVILEGES; EXIT;
-
停止安全模式下的MySQL
首先找到MySQL进程ID:
sudo killall mysqld
-
重新启动MySQL服务
sudo systemctl start mysql
-
使用新密码登录
sudo mysql -u root -p
步骤七:验证安装
-
登录MySQL
sudo mysql -u root -p
输入您在
mysql_secure_installation
或手动修改时设置的新密码后,您将进入MySQL命令行界面。 -
检查MySQL版本
在MySQL命令行中运行:
SELECT VERSION();
您将看到MySQL的版本信息。
步骤八:配置防火墙(可选)
如果您需要通过网络访问MySQL,确保防火墙允许3306端口的流量。
-
如果使用UFW防火墙
sudo ufw allow 'MySQL'
或者更具体地:
sudo ufw allow 3306/tcp
-
重新加载防火墙规则
sudo ufw reload
注意: 为了安全起见,建议仅允许受信任的IP地址访问MySQL服务。
方法二:使用MySQL官方仓库安装最新版本
如果您需要安装MySQL的最新版本,可以使用MySQL官方提供的APT仓库。
步骤一:下载并添加MySQL APT仓库
-
下载MySQL APT仓库配置包
wget https://dev.mysql.com/get/mysql-apt-config_0.8.26-1_all.deb
注意: 请访问 MySQL APT Repository 页面,确保下载最新版本的
mysql-apt-config
包。 -
安装MySQL APT仓库配置包
sudo dpkg -i mysql-apt-config_0.8.26-1_all.deb
在安装过程中,您将看到一个配置界面,选择您需要的MySQL版本(如8.0),然后确认。
-
更新系统包列表
sudo apt update
步骤二:安装 MySQL Server
sudo apt install -y mysql-server
步骤三:安装 MySQL 开发包
sudo apt install -y libmysqlclient-dev
步骤四至步骤七
按照方法一中的 步骤四 到 步骤八 完成MySQL服务的启动、配置、安全性设置和验证。
附加步骤:配置MySQL远程访问(可选)
如果需要从远程主机访问MySQL服务器,需进行以下配置:
步骤一:修改MySQL配置文件
-
编辑MySQL配置文件
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
-
找到
bind-address
行并修改将:
bind-address = 127.0.0.1
修改为:
bind-address = 0.0.0.0
说明: 这将允许MySQL监听所有IP地址。
-
保存并关闭文件(按
Ctrl + O
保存,按Ctrl + X
退出)
步骤二:重启MySQL服务
sudo systemctl restart mysql
步骤三:创建远程访问用户
-
登录MySQL
sudo mysql -u root -p
-
创建新用户并授予权限
CREATE USER 'username'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
注意: 替换
username
和password
为您的实际用户名和密码。
步骤四:配置防火墙
确保防火墙允许来自远程主机的连接:
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 开发包(包括头文件和动态库文件),并处理最新版本MySQL初始自动生成的用户名和密码,可以通过官方的APT包管理器轻松完成。以下是详细的步骤指南,包括从官方仓库和MySQL官方…...
Java 优化springboot jar 内存 年轻代和老年代的比例 减少垃圾清理耗时 如调整 -XX:NewRatio
-XX:NewRatio 是 Java Virtual Machine (JVM) 的一个选项,用于调整 年轻代(Young Generation)和 老年代(Old Generation)之间的内存比例。 1. 含义 XX:NewRatioN 用于指定 老年代 与 年轻代 的内存比例。 N 的含义&…...

嵌入式驱动RK3566 HDMI eDP MIPI 背光 屏幕选型与调试提升篇-eDP屏
eDP是嵌入式显示端口,具有高数据传输速率,高带宽,高分辨率、高刷新率、低电压、简化接口数量等特点。现大多数笔记本电脑都是用的这种接口。整个eDP是很复杂的,这里我们不讲底层原理,我们先掌握如何用泰山派来驱动各种…...

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

【windows】sonarqube起不来的问题解决
1. 现象与本质 因JDK的问题(比如版本太低或者太高,推荐JDK17)或者其他环境因素,导致sonarqube启动后自动关闭了。 从日志来看,根本看不出来什么,只有警告,没有ERROR,警告也不是本质问题&#…...
golang异常
panic如果不处理会导致应用进程挂掉 defer recover可以处理这种情况 一个recover只处理自己协程 产生panic的情况 空指针 数组越界 空map中添加键值对 错误,error接口,不严重 error.wrapof解决嵌套问题或者error.unwrap erroe.is方法,判断是…...
搭建MongoDB
title: 搭建MongoDB date: 2024-11-30 23:30:00 categories: - 服务器 tags: - MongoDB - 大数据搭建MongoDB 环境:Centos 7-2009 1. 创建MongoDB的国内yum源 # 下载Centos7对应最新版7.0.15的安装包 cat >> /etc/yum.repos.d/mongodb.repo << &quo…...

Android中坐标体系知识超详细讲解
说来说去都不如画图示意简单易懂啊!!!真是的! 来吧先上张图! (一)首先明确一下android 中的坐标系统: 屏幕的左上角是坐标系统原点(0,0) 原点向右延伸是X轴正…...

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

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

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

2024年12月16日Github流行趋势
项目名称:PDFMathTranslate 项目维护者:Byaidu reycn hellofinch Wybxc YadominJinta项目介绍:基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL/Ollama/OpenAI 等服务,提供 CLI/GUI/Docker。项目star数…...
Go 1.24即将到来!
Go 1.24 尚未发布。以下是正在撰写中的发布说明,预计 Go 1.24 将于 2025 年 2 月发布。 语言改进 Go 1.24 现在全面支持 泛型类型别名:类型别名可以像定义类型一样被参数化。详情请参阅语言规范。目前,可通过设置 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 能根据 类名和属性的信息,匹配到对应的类// 注意:// 1 匹配的时候,case class的属性个数要对上// 2 属性名不需…...

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

【计算机视觉基础CV】03-深度学习图像分类实战:鲜花数据集加载与预处理详解
本文将深入介绍鲜花分类数据集的加载与处理方式,同时详细解释代码的每一步骤并给出更丰富的实践建议和拓展思路。以实用为导向,为读者提供从数据组织、预处理、加载到可视化展示的完整过程,并为后续模型训练打下基础。 前言 在计算机视觉的深…...
Kafka学习篇
Architecture 系统间解耦,异步通信,削峰填谷 Topic 消息主题,用于存储消息 Partition 分区,通过扩大分区,可以提高存储量 Broker 部署Kafka服务的设备 Leader kafka主分区 Follwer kafka从分区 高性能之道:…...

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

【计算机视觉基础CV】05 - 深入解析ResNet与GoogLeNet:从基础理论到实际应用
引言 在上一篇文章中,我们详细介绍了ResNet与GoogLeNet的网络结构、设计理念及其在图像分类中的应用。本文将继续深入探讨如何在实际项目中应用这些模型,特别是如何保存训练好的模型、加载模型以及使用模型进行新图像的预测。通过这些步骤,读…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

C# 表达式和运算符(求值顺序)
求值顺序 表达式可以由许多嵌套的子表达式构成。子表达式的求值顺序可以使表达式的最终值发生 变化。 例如,已知表达式3*52,依照子表达式的求值顺序,有两种可能的结果,如图9-3所示。 如果乘法先执行,结果是17。如果5…...