跳转至

Ubuntu下安装和卸载MySQL

约 833 个字 23 行代码 预计阅读时间 3 分钟

下面的演示系统版本:Ubuntu 24.04

更新系统软件包

在开始安装之前,建议先更新系统的软件包列表,以确保所有依赖项是最新的。

Bash
1
sudo apt update && sudo apt upgrade -y

安装MySQL服务器

Ubuntu的官方软件仓库中通常包含MySQL的最新稳定版本,可以通过apt包管理器直接安装

安装MySQL服务器

运行以下命令来安装MySQL:

Bash
1
sudo apt install mysql-server -y

检查MySQL服务状态

安装完成后,MySQL服务会自动启动。可以使用以下命令检查其状态:

Bash
1
sudo systemctl status mysql

如果服务正在运行,将看到类似以下的输出:

Text Only
1
2
3
● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: active (running) since ...

如果服务未启动,可以手动启动它:

Bash
1
sudo systemctl start mysql

配置MySQL安全性

为了提高MySQL的安全性,建议运行 MySQL 自带的安全脚本mysql_secure_installation

启动安全配置脚本

运行以下命令:

Bash
1
sudo mysql_secure_installation

按照提示完成配置

  • 设置密码验证策略:选择密码强度(推荐选择MEDIUM或更高)
  • 设置 root 用户密码:为MySQL的root用户设置一个强密码(默认会跳过输入密码的过程,具体原因在下面会介绍,此处先完成安装步骤)
  • 删除匿名用户:选择Y删除匿名用户
  • 禁止远程 root 登录:选择Y禁止通过网络远程登录root用户
  • 删除测试数据库:选择Y删除默认的测试数据库
  • 重新加载权限表:选择Y应用更改

登录MySQL并验证安装

完成上述步骤后,您可以尝试登录MySQL来验证安装是否成功

使用root用户登录

运行以下命令并输入之前设置的root密码():

Bash
1
sudo mysql -u root -p

需要注意,如果跳过了设置密码,那么此处登录就直接会进入MySQL。默认情况下使用auth_socket进行身份验证,因此跳过为root设置的密码。如果想使用密码身份验证,可以使用登录MySQL并使用下面的命令设置密码:

SQL
1
2
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '输入新密码';
FLUSH PRIVILEGES;

设置完新密码后,下次登录就需要输入刚才设置的新密码进行登录MySQL

检查MySQL版本

登录成功后,运行以下SQL命令查看MySQL版本:

SQL
1
SELECT VERSION();

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

Text Only
1
2
3
4
5
+-------------------------+
| VERSION()               |
+-------------------------+
| 8.0.xx-0ubuntu0.xx.x    |
+-------------------------+

退出MySQL

输入以下命令退出 MySQL:

SQL
1
EXIT;

配置远程访问(可选)

如果您需要从其他机器访问MySQL数据库,请按照以下步骤配置远程访问

修改MySQL配置文件

编辑 MySQL 的主配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf

Bash
1
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

找到以下行并注释掉(或修改为 0.0.0.0):

Text Only
1
bind-address = 127.0.0.1

改为:

Text Only
1
bind-address = 0.0.0.0

保存并退出编辑器

创建远程用户

登录 MySQL 并创建一个允许远程访问的用户。例如:

SQL
1
2
3
CREATE USER 'remote_user'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

重启MySQL服务

应用更改并重启 MySQL 服务:

Bash
1
sudo systemctl restart mysql

配置防火墙规则

确保防火墙允许MySQL的默认端口(3306)流量:

Bash
1
2
sudo ufw allow 3306/tcp
sudo ufw reload

备份与恢复(可选)

定期备份数据库是确保数据安全的重要措施。

备份数据库

使用mysqldump工具备份数据库:

Bash
1
mysqldump -u root -p --databases your_database_name > backup.sql

恢复数据库

使用以下命令从备份文件恢复数据库:

Bash
1
mysql -u root -p < backup.sql

卸载 MySQL(可选)

如果您需要卸载 MySQL,可以运行以下命令:

Bash
1
2
3
4
sudo apt remove --purge mysql-server mysql-client mysql-common -y
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt autoremove -y
sudo apt autoclean