
🌱 代码仓库 :MSTcheng · Gitee
《C语言》《数据结构》 《算法学习》
《C++由浅入深》 《Linux操作系统》
《Mysql数据库》 《白话大模型》
文章目录
引言:
在数据驱动的时代,数据存储几乎是所有应用系统的核心需求。MySQL作为全球最流行的开源关系型数据库之一,凭借稳定、高效、跨平台、生态成熟等优势,被广泛用于网站、电商、企业级系统等各类场景。学会了MySQL,就等于掌握了与数据打交道的基础能力,也是后端开发、数据分析等方向的重要技能。
因此,本文将带领大家正式迈进 MySQL 的大门——从最基础的环境搭建开始,先完成 MySQL 的安装与配置,为后续学习打下坚实根基。
一、安装MySQL官方软件源
目的:让系统知道可以从哪里下载MySQL
2.1 确认Ubuntu版本
cat /etc/os-release
# 或
lsb_release# 示例:Ubuntu 22.04 对应代号 jammyammy
`### 2.2 下载MySQL 8.0官方软件源方软件源
1. 访问 MySQL官方官网:https://dev.mysql.com/downloads/repo/
2. 选择 **Ubuntu**3. 选择 **MySQL Community Server 8.0**84. 下载对应的 `mysql-apt-config` DEB包(注意:Ubuntu需要DEB包,系统会自动转换)动转### 2.3 上传DEB包到Ubuntu系统tu系统
```bash
# 上传到 /tmp# 假设下载的DEB文件名为:mysql-apt-config_0.8.24-1_all.deb
sudo dpkg -i mysql-apt-config_*.deb.rpm
# 安装过程中会出现配置界面,选择 OK 即可
2.2 更新软件源(验证是否生效)
# 查看安装后的源列表
ls /etc/apt/sources.list.d/
# 应该能看到 mysql-apt-config.list 或类似文件
cat /etc/apt/sources.list.d/mysql-apt-config.list
2.3 验证软件源是否配置正确
# 更新APT缓存
sudo apt-get upda# 检查能否看到 mysql 8.0 相关包7相关包
apt-cache search mysql | head -20
第二步:正式安装MySQL 8.0
目的:安装MySQL服务端
2.1 开始安装
# 安装MySQL社区版服务器(会自动安装客户端、服务端、库等)
sudo apt-get install mysql-community-server -y
# 如果提示密钥过期问题(常见错误):
# 错误信息类似:GPG key expired
# 解决方法:
# 1. 导入新的GPG密钥
# 2. 重新安装
sudo apt-key adv --fetch-keys 'https://repo.mysql.com/RPM-GPG-KEY-mysql-2022'
sudo apt-get update
sudo apt-get install mysql-community-server -y
2.2 安装后验证
# 检查3个关键文件/程序是否存在:
ls /etc/mysql/my.cnf # ✅ 配置文件
which mysqladmin # ✅ 服务端管理程序
which mysql # ✅ 客户端程序
第三步:启动MySQL服务
3.1 启动MySQL服务
# 启动MySQL服务
sudo systemctl start mysql
# 查看服务是否运行
ps -ef | grep mysql
# 应该看到 mysqld 进程
# 查看监听端口(MySQL默认3306)
sudo netstat -tlnp | grep 3306
# 或
sudo ss -tlnp | grep 3306
//我当前的mysql服务已经启动了所以能直接看到3306的端口已经在监听了!
mstcheng@ubuntu-dev:~/117/code/test1$ sudo netstat -tlnp | grep 3306
tcp6 0 0 :::33060 :::* LISTEN 1602/mysqld
tcp6 0 0 :::3306 :::* LISTEN 1602/mysqld
也可以通过ps ajx命令去查看mysqld这个服务是否启动了!

3.2 设置开机启动(可选)
# 设置MySQL开机自启动
sudo systemctl enable mysql
# 查看开机启动状态
sudo systemctl is-enabled mysql
第五步:登录MySQL 8.0(Ubuntu)
目的:掌握 MySQL 8.0 在 Ubuntu 环境下的正确登录方式
MySQL 8.0 在 Ubuntu 上通过 APT 安装后,默认登录机制和 mysql5.7 有明显区别:
- 5.7 通常会生成一个
temporary password,写在/var/log/mysql/error.log里。 - 8.0(Ubuntu 版)默认让
root使用auth_socket认证插件,也就是“系统当前用户是 root 时,可以直接免密进入 MySQL”。
所以,MySQL 8.0 的 root 免密登录,指的是 sudo mysql 免密,而不是 mysql -u root -p 空密码。
5.1 方案一:sudo 免密登录(推荐,最常用)
# 直接以系统管理员身份进入 MySQL
sudo mysql
# 正常会出现 mysql> 提示符,无需输入密码

进入后可以顺便查看 root 的认证方式:
SELECT user, host, plugin FROM mysql.user WHERE user='root';

如果 plugin 列显示为 auth_socket,就说明当前 root 走的是“本机免密”认证。(注意,上面涉及到一些sql的语法,这里只是演示,后面会重点介绍!)。
5.2 方案二:给 root 设置密码,改用 mysql -u root -p 登录
如果你希望像 5.7 那样,用 mysql -u root -p 输入密码登录,需要先把 root 的认证插件从 auth_socket 改成密码认证:
# 先通过 sudo 免密进入
sudo mysql
-- 8.0 默认推荐 caching_sha2_password
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '你的新密码';
FLUSH PRIVILEGES;
EXIT;

设置完成后,就可以使用密码登录:
mysql -u root -p
# 输入刚才设置的密码即可

提示:如果你的数据库客户端比较老,提示无法使用
caching_sha2_password,可以临时改用mysql_native_password:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';
5.3 方案三:忘记 root 密码时重置(跳过权限表)
一般只有当你设置过密码又忘记时才需要用到,日常登录优先用方案一、方案二。
# 1. 停止 MySQL 服务
sudo systemctl stop mysql
# 2. 创建运行目录(部分环境需要)
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
# 3. 跳过权限表启动 MySQL
sudo mysqld --skip-grant-tables --user=mysql &
# 4. 另开一个终端,无密码登录
mysql -u root
登录成功后执行:
-- 先刷新生效
FLUSH PRIVILEGES;
-- 重新设置 root 密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
FLUSH PRIVILEGES;
EXIT;
最后恢复正常启动:
# 结束跳过权限表启动的进程
sudo pkill mysqld
# 正常启动 MySQL 服务
sudo systemctl start mysql
关于用户密码,创建用户,删除用户,root账号更改普通账号密码的问题,会在后面的用户管理篇详细介绍,这里略微了解一下即可!
⚠️ 重要提醒:无论当前是在内网测试环境,还是即将部署到真正的生产环境,都一定要给
root账号设置强密码,并妥善保管、定期更换。因为root拥有数据库的最高权限,一旦 MySQL 端口可被网络访问或被他人登录,攻击者就可能直接获得对整个数据库的控制权,进而造成数据泄露、篡改甚至删库。
第六步:配置MySQL编码(统一使用UTF8)
目的:避免中文乱码
5.1 编辑配置文件
sudo vim /etc/mysql/my.cnf
5.2 添加编码配置
在 [mysqld] 段中(如果没有该段就创建),添加以下内容:
[mysqld]
# 端口(默认3306,不改也可以)
port = 3306
# 数据目录(默认,通常不用改)
datadir = /var/lib/mysql
# 错误日志文件(默认)
# error_log = /var/log/mysql/error.log
# 设置编码为UTF8(关键配置!)
character-set-server = utf8
init_connect='SET NAMES utf8'
# 设置默认存储引擎为InnoDB
storage_engine = innodb
5.3 重启服务使配置生效
sudo systemctl restart mysql
5.4 验证编码配置是否生效
# 登录MySQL后执行:
mysql -u root -p
SHOW VARIABLES LIKE 'character_set%';
SHOW VARIABLES LIKE 'collation%';
# 应该看到:
# character_set_server: utf8
# collation_server: utf8_general_ci
日常常用命令速查
| 功能 | 命令 |
|---|---|
| 启动MySQL | sudo systemctl start mysql |
| 停止MySQL | sudo systemctl stop mysql |
| 重启MySQL | sudo systemctl restart mysql |
| 查看MySQL状态 | sudo systemctl status mysql |
| 查看MySQL进程 | ps -ef | grep mysql |
| 查看端口 | sudo netstat -tlnp | grep 3306 |
| 登录MySQL(带密码) | mysql -u root -p |
| 登录MySQL(指定端口) | mysql -u root -P 3306 -p |
| 退出MySQL | exit 或 quit |
| 设置开机启动 | sudo systemctl enable mysql |
| 取消开机启动 | sudo systemctl disable mysql |
总结
本文以 Ubuntu 为例,介绍了 MySQL 8.0 的完整安装与配置流程:先配置官方软件源,再安装 MySQL服务端;随后启动服务并设置开机自启。登录部分重点说明了 8.0 的
sudo mysql免密登录、为root设置密码,以及忘记密码时的重置方法。最后统一配置 UTF8 编码,避免中文乱码,并整理了日常常用命令。掌握这些内容后,MySQL环境准备就算完成了。
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/2403_86779341/article/details/167587257




