单节点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,然后按 Y 和 Enter)。

  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,成功连接说明远程访问已经配置完成!

相关推荐
ben9518chen8 小时前
mysql数据库基本操作
数据库·mysql
imDwAaY15 小时前
MySQL 存储引擎是什么?
android·数据库·mysql
for_ever_love__15 小时前
MySQL 8.0 数据类型选型指南:INT、DECIMAL、VARCHAR 与时间字段怎么选
mysql·adb·数据类型·varchar·长度·字段类型选择
张张123y16 小时前
# 后端第七课:FastAPI 实战入门(用刚学的 Python 写第一个 API 接口)
开发语言·python·mysql·api·fastapi
渣渣盟16 小时前
2000万QPS背后的存储引擎博弈:InnoDB、MyRocks、WiredTiger到底谁更强?
数据库·mysql
张张123y17 小时前
# 后端第八课:数据库入门(给 FastAPI 接口加上“记忆“,存下问答历史)
数据库·sql·mysql·oracle·fastapi·sqllite
paopaokaka_luck17 小时前
校园新闻推荐系统(DeepSeek新闻助手、个性化推荐算法、 Redis热词排行榜、ECharts运营分析、互动与实时通知、新闻运营闭环)
java·spring boot·mysql·spring·tomcat·echarts·intellij idea
RestCloud18 小时前
数据同步零中断:ETL服务宕机重启后异常任务自动重跑
数据仓库·mysql·etl·etlcloud·数据传输·etl工具
猫咪很可爱19 小时前
MySQL 定时 DDL 导致 mysqldump 备份失败:场景模拟、排查与优化建议
mysql
数据库小学妹19 小时前
MySQL内存占用过高怎么排查?分层定位与OOM根因
数据库·经验分享·mysql·内存·oom