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. 使用防火墙和其他网络安全措施来保护数据库服务器。
相关推荐
小林熬夜学编程16 分钟前
【Linux系统编程】第五十弹---构建高效单例模式线程池、详解线程安全与可重入性、解析死锁与避免策略,以及STL与智能指针的线程安全性探究
linux·运维·服务器·c语言·c++·安全·单例模式
玖玖玖 柒染17 分钟前
windows下sqlplus连接到linux oracle不成功
linux·windows·oracle
LuckyTHP18 分钟前
CentOS 9 无法启动急救方法
linux·运维·centos
Bonne journée18 分钟前
centos和ubuntu有什么区别?
linux·ubuntu·centos
vvw&20 分钟前
如何在 Ubuntu 22.04 上安装带有 Nginx 的 ELK Stack
linux·运维·nginx·ubuntu·elk·elasticsearch·开源项目
Linux运维老纪22 分钟前
交换机配置从IP(Switch Configuration from IP)
linux·服务器·网络·安全·运维开发·ip
OneSea23 分钟前
Debian源码管理
linux
加载中loading...26 分钟前
C/C++实现tcp客户端和服务端的实现(从零开始写自己的高性能服务器)
linux·运维·服务器·c语言·网络
大筒木老辈子28 分钟前
Linux笔记---进程:初识进程
linux·服务器·笔记
木木em哈哈32 分钟前
archlinux安装waydroid
linux·运维·服务器