linux ubuntu Mysql 安装指南

第一部分安装:

步骤 1: 更新 apt 软件包索引

在开始安装之前,建议先更新 apt 软件包索引,以确保你安装的软件版本是最新的:

bash 复制代码
sudo apt update

步骤 2: 安装 MySQL 服务器

运行以下命令来安装 MySQL 服务器软件包:

bash 复制代码
sudo apt install mysql-server

在安装过程中,系统会要求你设置 root 用户的密码。请注意,安全起见,应该设置一个强密码。

步骤 3: 启动 MySQL 服务

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

bash 复制代码
sudo systemctl status mysql

如果 MySQL 未启动,你可以使用以下命令手动启动服务:

bash 复制代码
sudo systemctl start mysql

步骤 4: 运行安全性脚本

MySQL 提供了一个安全性脚本,用于确保数据库安全。运行以下命令来执行安全性脚本:

bash 复制代码
sudo mysql_secure_installation

根据提示,你可以选择设置密码强度验证策略、删除匿名用户、禁用远程 root 登录等。

步骤 5: 使用 MySQL

安装和配置完成后,你可以通过以下方式登录到 MySQL 数据库:

bash 复制代码
sudo mysql -u root -p

输入你在安装过程中设置的 root 密码,然后就可以使用 MySQL 数据库了。

补充提示:

  • 如果你需要 MySQL 的图形管理工具,可以安装 mysql-workbench

    bash 复制代码
    sudo apt install mysql-workbench
  • 如果你需要其他 MySQL 版本,可以根据需要选择 MySQL 的特定版本进行安装。

第二部分开放权限:

步骤 1: 编辑 MySQL 配置文件

首先,你需要编辑 MySQL 配置文件以允许外网访问。打开 MySQL 配置文件 mysqld.cnf

bash 复制代码
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

找到以下行(可能位于文件的底部),注释掉或删除 bind-address 参数。这将允许 MySQL 服务器接受来自任何 IP 地址的连接请求。

复制代码
# bind-address    = 127.0.0.1

保存并退出配置文件。

步骤 2: 更新防火墙规则

接下来,你需要确保防火墙允许来自外部 IP 地址的 MySQL 连接。如果你使用的是 ufw 防火墙工具,可以执行以下命令开放 MySQL 相关的端口。

bash 复制代码
sudo ufw allow 3306

这将允许来自外部 IP 地址的连接通过 MySQL 默认端口(3306)进行访问。

步骤 3: 重启 MySQL 服务

完成配置更改后,你需要重新启动 MySQL 服务,以使更改生效。

bash 复制代码
sudo service mysql restart

步骤 4: 配置远程 MySQL 用户

为了使远程主机能够连接到你的 MySQL 服务器,你需要创建一个具有远程访问权限的 MySQL 用户,并授予其适当的权限。

在 MySQL 控制台中执行以下命令:

bash 复制代码
sudo mysql -u root -p

使用管理员凭据登录到 MySQL 控制台后,可以创建新的远程用户(例如 remote_user)和密码,并为其授予相应的权限。确保将 your_remote_useryour_remote_password 替换为你想要使用的实际值。

sql 复制代码
CREATE USER 'porsso'@'%' IDENTIFIED WITH 'mysql_native_password' BY 'root!****';

GRANT ALL PRIVILEGES ON *.* TO 'porsso'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

这将创建一个具有全局访问权限的新用户,并允许从任何远程 IP 地址连接到 MySQL 数据库。

注意事项和安全性考虑:

开放 MySQL 的外部访问会增加安全风险,因为它使你的数据库服务器暴露在公共网络中。为了保护你的数据库和数据安全,确保遵循以下最佳实践:

  1. 确保使用强密码保护你的 MySQL 用户。
  2. 限制远程访问的 IP 地址范围,只允许来自可信来源的连接。
  3. 使用防火墙和其他网络安全措施来保护数据库服务器。
相关推荐
小天源4 小时前
linux漏洞一键扫描
linux·运维·服务器·漏洞扫描
小句4 小时前
MySQL慢查询日志详细使用指南
数据库·mysql·adb
码农水水5 小时前
中国邮政Java面试被问:容器镜像的多阶段构建和优化
java·linux·开发语言·数据库·mysql·面试·php
wifi chicken5 小时前
Linux Wlan L3~L2封包逻辑详解
linux·网络·ping·封包
小白鸽i7 小时前
【LINUX】将源码驱动文件编译并生效
linux·运维·服务器
胡斌附体8 小时前
linux(ubuntu)拉取源码进行docker容器部署
linux·git·ubuntu·docker·node·nvm
wdfk_prog8 小时前
[Linux]学习笔记系列 -- [drivers][base]platform
linux·笔记·学习
永不复还8 小时前
linux 使用X11监听键盘鼠标输入
linux·x11
kida_yuan9 小时前
【Linux】说说我对 Wine 与 deepin-wine 的理解
linux·运维·wine
嵌入小生0079 小时前
基于Linux系统下的C语言程序错误及常见内存问题调试方法教程(嵌入式-Linux-C语言)
linux·c语言·开发语言·嵌入式·小白·内存管理调试·程序错误调试