你是不是也遇到过这样的困扰:看着网上各种MySQL安装教程,要么步骤不全,攻略要么版本太老,让分要么就是装难钟搞一堆专业术语看得云里雾里?
别慌!今天这篇教程专门为小白量身定制,开玩保证你跟着做一遍就能成功!笑份我们用最简单的攻略APT包管理器来安装,就像在手机上装APP一样简单。让分

首先,让我们确认一下系统版本。笑份打开终端(按Ctrl + Alt + T),攻略输入:
复制lsb_release -a1.你应该看到类似这样的让分输出:
复制Distributor ID: Ubuntu Description: Ubuntu 20.04.x LTS Release: 20.04 Codename: focal1.2.3.4.如果看到20.04,那就对了!
第二步:更新系统包列表这一步很重要,就像给你的"软件商店"刷新一下最新的软件列表:
复制sudo apt update1.小贴士:输入这个命令后,系统可能会要求你输入密码,这是正常的。输入时屏幕上不会显示密码字符,亿华云直接输入完按回车就行。
现在是关键时刻!输入这个"魔法咒语":
复制sudo apt install mysql-server1.系统会问你是否继续安装(Do you want to continue? [Y/n]),直接按回车或者输入Y然后回车。
这里会发生什么?
系统开始下载MySQL相关文件自动安装和配置你会看到一堆滚动的文字,这是正常的,耐心等待第四步:检查MySQL是否安装成功安装完成后,让我们检查一下MySQL服务是否正在运行:
复制sudo systemctl status mysql1.如果看到绿色的active (running)字样,恭喜你,安装成功了!
如果没有自动启动,可以手动启动:
复制sudo systemctl start mysql1. 第四步补充:安装MySQL开发库(重要)如果你后续需要开发MySQL相关的程序(比如用C/C++、Python等语言连接MySQL),建议现在就安装MySQL的开发库:
复制sudo apt install libmysqlclient-dev -y1.这个库的作用:
提供MySQL的C语言头文件和库文件支持多种编程语言的MySQL连接器编译C/C++程序连接MySQL必备什么时候需要:
编写C/C++程序连接MySQL安装一些Python包(如mysqlclient)时需要编译其他需要MySQL支持的软件安装很快,现在装上以后就不用担心了,避免后续开发时再去找这个依赖。
MySQL安装后默认设置比较宽松,我们需要加强一下安全性。MySQL 8.0的安全配置脚本运行起来很简单:
复制sudo mysql_secure_installation1.运行过程说明:
MySQL 8.0会自动检测当前的认证方式如果root用户使用auth_socket认证,脚本会正常运行直接按回车通常不会有问题这个命令会启动一个交互式的配置过程,跟着我的步骤来:
配置过程详解:
① 是否安装密码验证插件?
复制Would you like to setup VALIDATE PASSWORD plugin? (Press y|Y for Yes, any other key for No):1. 新手建议:输入n(不安装)为什么:这个插件会强制要求复杂密码,对新手来说可能比较麻烦② 删除匿名用户?
复制Remove anonymous users? (Press y|Y for Yes, any other key for No):1.建议:输入y(删除匿名用户,提高安全性)
③ 禁止root远程登录?
复制Disallow root login remotely? (Press y|Y for Yes, any other key for No):1.建议:输入y(禁止远程登录,提高安全性)
④ 删除test数据库?
复制Remove test database and access to it? (Press y|Y for Yes, any other key for No):1.建议:输入y(删除测试数据库)
⑤ 重新加载权限表?
复制Reload privilege tables now? (Press y|Y for Yes, any other key for No):1.建议:输入y(立即生效配置)
(1) 首次登录MySQL
MySQL 8.0安装后,root用户默认使用auth_socket认证方式,这意味着你可以直接用sudo登录,无需密码:
复制sudo mysql1.成功的标志:你会看到类似这样的欢迎信息:
复制Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 8 Server version: 8.0.xx-Ubuntu mysql>1.2.3.4.5.(2) 查看当前root用户认证方式
在MySQL命令行中,输入以下命令查看root用户的认证信息:
复制SELECT user, host, plugin, authentication_string FROM mysql.user WHERE user=root;1.你会看到类似这样的输出:
复制+------+-----------+-------------+-----------------------+ | user | host | plugin | authentication_string | +------+-----------+-------------+-----------------------+ | root | localhost | auth_socket | | +------+-----------+-------------+-----------------------+1.2.3.4.5.解释:
plugin显示为auth_socket,表示使用socket认证authentication_string为空,表示没有设置密码(3) 修改root用户认证方式(推荐)
为了方便日常使用和提高安全性,建议将root用户的认证方式改为传统的密码认证(mysql_native_password):
复制ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY your_password;1.重要说明:
将your_password替换为你想要设置的密码密码要足够强壮,建议包含大小写字母、数字和特殊字符(4) 验证修改结果
再次查看root用户的认证信息:
复制SELECT user, host, plugin, authentication_string FROM mysql.user WHERE user=root;1.现在你应该看到:
复制+------+-----------+-----------------------+-------------------------------------------+ | user | host | plugin | authentication_string | +------+-----------+-----------------------+-------------------------------------------+ | root | localhost | mysql_native_password | *加密后的密码字符串* | +------+-----------+-----------------------+-------------------------------------------+1.2.3.4.5.(5) 退出并重新登录测试
退出MySQL:
复制EXIT;1.现在用新的密码登录:
复制mysql -u root -p1.系统会提示输入密码,服务器租用输入你刚才设置的密码。
为什么要做这个修改?
方便性:可以直接用密码登录,不需要sudo权限兼容性:某些应用程序可能不支持auth_socket认证安全性:明确的密码认证更符合数据库安全规范看到mysql>这个提示符,说明你已经成功进入MySQL了!
第七步:创建普通用户(推荐)在实际项目中,我们通常不直接使用root用户,而是创建专门的普通用户。这是一个好习惯!
(1) 创建新用户
在MySQL命令行中执行:
复制-- 创建新用户(将username和password替换为你想要的用户名和密码) CREATE USER username@localhost IDENTIFIED BY password;1.2.举个例子:
复制-- 创建一个名为myapp的用户,密码是myapp123 CREATE USER myapp@localhost IDENTIFIED BY myapp123;1.2.(2) 给用户授权
新创建的用户默认没有任何权限,我们需要给它分配权限:
复制-- 给用户授予某个数据库的所有权限 GRANT ALL PRIVILEGES ON database_name.* TO username@localhost; -- 如果要给用户授予所有数据库的权限(谨慎使用) GRANT ALL PRIVILEGES ON *.* TO username@localhost;1.2.3.4.5.实际例子:
复制-- 先创建一个测试数据库 CREATE DATABASE testdb; -- 给myapp用户授予testdb数据库的所有权限 GRANT ALL PRIVILEGES ON testdb.* TO myapp@localhost; -- 刷新权限 FLUSH PRIVILEGES;1.2.3.4.5.6.7.8.(3) 测试新用户
退出当前连接:
复制EXIT;1.用新用户登录:
复制mysql -u myapp -p1.输入密码后,试试查看数据库:
复制SHOW DATABASES;1.你应该能看到testdb数据库。
第八步:简单测试在MySQL命令行中,试试这些基本命令:
复制-- 查看所有数据库 SHOW DATABASES; -- 查看MySQL版本 SELECT VERSION(); -- 退出MySQL EXIT;1.2.3.4.5.6.7.8.注意:每个SQL命令后面要加分号;
让MySQL在每次开机时自动启动:
复制sudo systemctl enable mysql1.检查是否设置成功:
复制sudo systemctl is-enabled mysql1.如果返回enabled,就成功了!
作为小白,记住这几个命令就够用了:
复制# 启动MySQL服务 sudo systemctl start mysql # 停止MySQL服务 sudo systemctl stop mysql # 重启MySQL服务 sudo systemctl restart mysql # 查看MySQL服务状态 sudo systemctl status mysql # 连接MySQL mysql -u root -p1.2.3.4.5.6.7.8.9.10.11.12.13.14.情况1:如果你使用的是默认的auth_socket认证 可以直接用sudo登录:
复制sudo mysql1.然后重新设置密码:
复制ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 新密码; EXIT;1.2.情况2:如果你已经设置了mysql_native_password认证但忘记密码 可以这样重置:
复制# 停止MySQL服务 sudo systemctl stop mysql # 安全模式启动MySQL sudo mysqld_safe --skip-grant-tables & # 无密码登录 mysql -u root # 在MySQL中执行 USE mysql; ALTER USER root@localhost IDENTIFIED WITH mysql_native_password BY 新密码; FLUSH PRIVILEGES; EXIT; # 重启MySQL sudo systemctl restart mysql1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17. 问题2:无法连接MySQL如果遇到连接问题,检查服务是否运行:
复制sudo systemctl status mysql1.如果服务没运行,启动它:
复制sudo systemctl start mysql1. 问题3:端口被占用MySQL默认使用3306端口,检查端口是否被占用:
复制sudo netstat -tlnp | grep 33061.恭喜你!如果按照以上步骤操作,你现在已经:
成功在Ubuntu 20.04上安装了MySQL完成了基本的安全配置学会了基本的MySQL管理命令知道了常见问题的解决方法MySQL已经准备好为你的项目服务了!接下来你可以开始学习SQL语句,创建数据库和表,开始你的数据库之旅。