当前位置: 首页 > news >正文

Ubuntu 下 MySQL 运维自动化部署教程(在线简易版)

适用于 Ubuntu 20.04/22.04 系统及以上版本,自动化脚本在文末。


📌 一、更新系统包

sudo apt update && sudo apt upgrade -y

📌 二、安装 MySQL Server

Ubuntu 官方源中的 MySQL 默认是 MySQL 8.x 版本。

sudo apt install mysql-server -y

📌 三、启动和检查服务状态

sudo systemctl start mysql
sudo systemctl enable mysql   # 设置为开机自启
sudo systemctl status mysql   # 查看运行状态

📌 四、安全配置(设置 root 密码)

MySQL 默认不设置密码,可执行如下命令进入命令行设置:

sudo mysql

在 MySQL 提示符中输入:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
FLUSH PRIVILEGES;
EXIT;

✅ 建议密码简单:如 123456(测试或内部使用),生产环境请使用复杂密码。


📌 五、测试登录

mysql -u root -p
# 输入你设置的密码 123456

📌 六、创建数据库和用户(举例)

创建数据库:

CREATE DATABASE testdb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

创建用户并授权:

CREATE USER 'testuser'@'localhost' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;

📌 七、开放远程访问(可选)

  1. 修改绑定地址:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

将:

bind-address = 127.0.0.1

改为:

bind-address = 0.0.0.0
  1. 授权远程用户:
CREATE USER 'testuser'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'%';
FLUSH PRIVILEGES;
  1. 重启服务:
sudo systemctl restart mysql
  1. 检查防火墙是否允许 3306 端口:
sudo ufw allow 3306

📌 八、常见运维命令

操作命令
启动 MySQLsudo systemctl start mysql
停止 MySQLsudo systemctl stop mysql
重启 MySQLsudo systemctl restart mysql
查看状态sudo systemctl status mysql
登录 MySQLmysql -u root -p
查看数据库SHOW DATABASES;
修改 root 密码ALTER USER ...

📌 九、数据库备份与还原(可选)

备份数据库:

mysqldump -u root -p testdb > testdb_backup.sql

还原数据库:

mysql -u root -p testdb < testdb_backup.sql

✅ 十、结语

本教程覆盖了从安装到基本管理、远程访问和运维操作的全过程,适合快速部署 MySQL 并开始开发或配合 BI 工具等使用。

如需我生成一个 Markdown 格式手册、PDF 或 .sh 自动安装脚本,也可以告诉我。

以下是为 Ubuntu 下 MySQL 运维部署教程 增加的 自动化部署脚本,可直接复制粘贴到 .sh 文件中使用,一键完成安装、初始化密码设置、配置远程访问与基础优化:


✅ 十一、自动化部署脚本 mysql_deploy.sh

#!/bin/bash# 简单变量设置
MYSQL_ROOT_PASSWORD="123456"  # 可按需修改
MYSQL_PORT=3306echo "=== 开始更新系统并安装 MySQL ==="
sudo apt update && sudo apt install -y mysql-serverecho "=== 启动 MySQL 并设置开机启动 ==="
sudo systemctl start mysql
sudo systemctl enable mysqlecho "=== 修改 root 初始密码 ==="
sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '${MYSQL_ROOT_PASSWORD}'; FLUSH PRIVILEGES;"echo "=== 开启远程访问 ==="
sudo sed -i "s/^bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/mysql.conf.d/mysqld.cnfecho "=== 设置 root 用户可以远程登录 ==="
sudo mysql -uroot -p${MYSQL_ROOT_PASSWORD} -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}' WITH GRANT OPTION; FLUSH PRIVILEGES;"echo "=== 重启 MySQL 以应用更改 ==="
sudo systemctl restart mysqlecho "=== 防火墙放行 ${MYSQL_PORT} 端口(如有) ==="
sudo ufw allow ${MYSQL_PORT}echo "=== 部署完成 ==="
echo "✔️ MySQL 已安装并配置完毕"
echo "✔️ root 密码:${MYSQL_ROOT_PASSWORD}"
echo "✔️ 远程访问:已启用(请确保服务器公网 IP 安全)"

📌 使用说明:

  1. 保存脚本

    nano mysql_deploy.sh
    # 粘贴上面的内容,保存退出
    
  2. 赋予执行权限并运行

    chmod +x mysql_deploy.sh
    ./mysql_deploy.sh
    
http://www.lryc.cn/news/609545.html

相关文章:

  • MLIR Introduction
  • cobalt strike(CS)与Metasploit(MSF)联动
  • Nestjs框架: @nestjs/config 配置模块详解与实践
  • Go 语言模糊测试 (Fuzz Testing) 深度解析与实践
  • 基于鼠标位置的相机缩放和平移命令的实现(原理+源码)
  • Java 17新特性深度解读:Records、Sealed Classes与Pattern Matching
  • 宝塔面板安装WordPress教程:10分钟一键部署搭建个人博客 (2025)
  • Git如何同步本地与远程仓库并解决冲突
  • Linux 用户与组管理全解析
  • 电商系统想撑住大流量?ZKmall开源商城靠微服务 + Spring Boot3 解决单体架构难题
  • JavaScript中的作用域、闭包、定时器 由浅入深
  • 肾上腺疾病AI诊疗一体化系统应用方向探析
  • 机器学习——学习路线
  • 【拓扑序 容斥原理】P6651 「SWTR-5」Chain|省选-
  • 登录验证码功能实现:Spring Boot + Vue 全流程解析
  • Ethereum:智能合约开发者的“瑞士军刀”OpenZeppelin
  • Neo4j 社区版 Mac 安装教程
  • 数据结构---配置网络步骤、单向链表额外应用
  • Vue3核心语法进阶(Hook)
  • 如何使用EF框架操作Sqlite
  • 20250805问答课题-实现TextRank + 问题分类
  • 量子计算接口开发:Python vs Rust 性能对决
  • uniapp快遞上門提貨的時間選擇的插件
  • PyTorch生成式人工智能(25)——基于Transformer实现机器翻译
  • 代码详细注释:(linux)TCP客户端接收服务器端发的信息
  • AI 大模型分类全解析:从文本到多模态的技术图谱
  • Rust ⽣成 .wasm 的极致瘦⾝之道
  • 从 Hive 数仓出发,全面剖析 StarRocks、MySQL、HBase 的使用场景与区别
  • 【Spark征服之路-4.5-Spark-Streaming核心编程(三)】
  • [Oracle] TO_CHAR()函数