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

相关推荐
翔云1234564 小时前
RocksDB中,客户端每写入一次数据,需要访问几次磁盘
运维·数据库·mysql
在多学一点7 小时前
MYSQL第二次作业
android·数据库·mysql
yeccheng7 小时前
MySQL 索引超详解:从底层 B+ 树到面试高频考点
java·开发语言·jvm·mysql·面试
骑着蜗牛撵大象3277 小时前
MySQL 8.0 迁移后 SQL 变慢:执行计划里 3 类被忽略的成本差异
android·数据库·sql·mysql·优化器·执行计划
.痞老板.14 小时前
mysql初阶--数据类型
android·数据库·mysql
Risehuxyc14 小时前
MySQL密码插件
数据库·mysql
.痞老板.1 天前
mysql初阶--数据库基础
数据库·mysql
城北徐宫1 天前
MySQL约束条件一览
数据库·mysql
码农小河661 天前
基于SSM+JSP+MySQL的在线医疗服务系统的设计与实现
java·开发语言·mysql
这个DBA有点耶1 天前
以为自增ID只是有空洞?聊聊双主架构下无声的“数据覆盖”
数据库·mysql·dba