单节点MySQL部署

Ubuntu22.04安装单节点Mysql

步骤 1:更新软件包列表并安装 MySQL

  1. 更新系统的软件包列表

    bash 复制代码
    sudo apt update
    sudo apt upgrade -y
  2. 安装 MySQL Server

    bash 复制代码
    sudo apt install mysql-server -y
  3. 检查 MySQL 服务是否已启动

    bash 复制代码
    sudo systemctl status mysql

    如果没有运行,可以手动启动:

    bash 复制代码
    sudo systemctl start mysql

步骤 2:配置 MySQL 初始设置

  1. 运行安全脚本来配置 MySQL(可以跳过一些不需要的安全选项)

    bash 复制代码
    sudo mysql_secure_installation
    • 按照提示操作,通常你可以执行以下选项:
      • 设置或跳过 root 密码(我们后面会手动设置)。
      • 删除匿名用户:Yes
      • 禁用 root 远程登录(选择 No,因为我们要设置远程访问)。
      • 删除测试数据库:Yes
      • 重新加载权限表:Yes
  2. 登录 MySQL Shell

    bash 复制代码
    sudo mysql -u root
  3. 设置 root 用户密码123456

    sql 复制代码
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
    FLUSH PRIVILEGES;
    • 使用 mysql_native_password 是为了兼容某些客户端。

步骤 3:允许远程访问

  1. 编辑 MySQL 配置文件

    打开配置文件:

    bash 复制代码
    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    • 找到以下行:

      复制代码
      bind-address = 127.0.0.1
    • 修改为:

      复制代码
      bind-address = 0.0.0.0
    • 这样做允许 MySQL 接收来自任何 IP 地址的连接。

  2. 保存并退出 (按 Ctrl + X,然后按 YEnter)。

  3. 重新启动 MySQL 服务

    bash 复制代码
    sudo systemctl restart mysql

步骤 4:创建远程用户(可选)

如果不想用 root 用户,可以新建一个允许远程访问的用户:

  1. 登录到 MySQL:

    bash 复制代码
    sudo mysql -u root -p
  2. 创建一个远程用户 并授权:

    sql 复制代码
    CREATE USER 'remote_user'@'%' IDENTIFIED BY '123456';
    GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    • 这里,remote_user 是远程用户,% 代表允许来自任意 IP 地址的连接。
    • GRANT ALL PRIVILEGES 允许这个用户执行所有操作。根据实际需求,可以更细化权限。

步骤 5:防火墙设置(开放 MySQL 端口 3306)

  1. 打开 3306 端口(MySQL 的默认端口):

    bash 复制代码
    sudo ufw allow 3306/tcp
  2. 启用防火墙(如果尚未启用)

    bash 复制代码
    sudo ufw enable
  3. 查看防火墙规则

    bash 复制代码
    sudo ufw status

    确保 3306 端口已经列在允许的列表中。


步骤 6:测试远程连接

  1. 从另一台电脑或服务器,尝试连接到 MySQL(将 <server-ip> 替换为你的 Ubuntu 服务器 IP):

    bash 复制代码
    mysql -u root -p -h <server-ip>
  2. 输入密码 123456,成功连接说明远程访问已经配置完成!

相关推荐
码上飞扬1 小时前
深入 MySQL 高级查询:JOIN、子查询与窗口函数的实用指南
数据库·mysql
理想奋斗中6 小时前
MYDB仿MySQL手写数据库项目总结
数据库·mysql·mydb·仿mysql
李菠菜6 小时前
配置 MySQL 8 允许 Root 用户远程访问
后端·mysql
漫步向前6 小时前
mysql排序
mysql
掘金詹姆斯8 小时前
在项目中如何进行分库分表?
java·mysql
不辉放弃8 小时前
第一章:MySQL视图基础
python·mysql
Cachel wood8 小时前
Mysql相关知识2:Mysql隔离级别、MVCC、锁
数据库·python·sql·mysql·中间件·数据分析·django
等等5439 小时前
mysql——基础知识
数据库·mysql
济宁雪人9 小时前
MySQL数据库(基础篇)
数据库·mysql
{⌐■_■}9 小时前
【MySQL】索引运算与NULL值问题详解:索引字段应尽量 NOT NULL ,NULL值不能参与部分索引运算
android·数据库·mysql