MySQL 安装难?开玩笑!这份攻略让你五分钟搞定

适用人群:Linux小白、Ubuntu初学者、第一次接触MySQL的同学系统版本:Ubuntu 20.04 LTS预计用时:5-10分钟

你是不是也遇到过这样的困扰:看着网上各种MySQL安装教程,要么步骤不全,要么版本太老,要么就是一堆专业术语看得云里雾里?

别慌!今天这篇教程专门为小白量身定制,保证你跟着做一遍就能成功!我们用最简单的APT包管理器来安装,就像在手机上装APP一样简单。

一、安装前的准备工作

第一步:确认你的Ubuntu版本

首先,让我们确认一下系统版本。打开终端(按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.

小贴士:输入这个命令后,系统可能会要求你输入密码,这是正常的。输入时屏幕上不会显示密码字符,直接输入完按回车就行。

二、开始安装MySQL

第三步:安装MySQL服务器

现在是关键时刻!输入这个"魔法咒语":

复制
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安装后默认设置比较宽松,我们需要加强一下安全性。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(立即生效配置)

四、测试MySQL安装

第六步:登录MySQL并配置root用户认证方式

(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开机自启动

让MySQL在每次开机时自动启动:

复制
sudo systemctl enable mysql1.

检查是否设置成功:

复制
sudo systemctl is-enabled mysql1.

如果返回enabled,就成功了!

六、常用MySQL管理命令

作为小白,记住这几个命令就够用了:

复制
# 启动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:忘记root密码怎么办?

情况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.

八、给初学者的小建议

记住你的密码:MySQL的root密码一定要记住,建议写在安全的地方定期备份:养成备份数据库的好习惯学习基础SQL:安装只是第一步,学会基本的SQL语句才能真正使用MySQL使用图形化工具:推荐安装Navicat、DBeaver或MySQL Workbench,图形界面更友好

九、总结

恭喜你!如果按照以上步骤操作,你现在已经:

成功在Ubuntu 20.04上安装了MySQL完成了基本的安全配置学会了基本的MySQL管理命令知道了常见问题的解决方法

MySQL已经准备好为你的项目服务了!接下来你可以开始学习SQL语句,创建数据库和表,开始你的数据库之旅。

阅读剩余
THE END