1. 首页 > MySQL教程 > 正文

MySQL教程FG017-MySQL GCP云平台安装

本文档风哥主要介绍在GCP云平台上安装和部署MySQL数据库的方法,包括Cloud SQL for MySQL和在GCP虚拟机上部署MySQL两种方式。风哥教程参考MySQL官方文档Installing MySQL等。更多视频教程www.fgedu.net.cn

Part01-基础概念与理论知识

1.1 GCP云平台概述

Google Cloud Platform (GCP)是谷歌提供的全球云平台,提供了广泛的云服务,包括计算、存储、网络、数据库等。学习交流加群风哥微信: itpux-com

1.2 MySQL on GCP选项

在GCP上部署MySQL有两种主要方式:

  • Cloud SQL for MySQL:谷歌托管的MySQL数据库服务
  • 在GCP虚拟机上部署MySQL:自行管理的MySQL实例

1.3 架构规划

根据业务需求选择合适的部署架构,包括单实例、高可用架构等。

Part02-生产环境规划与建议

2.1 资源规划

根据业务需求规划GCP资源,包括计算资源、存储资源等。

2.2 网络规划

规划GCP网络配置,包括VPC网络、子网、防火墙规则等。

2.3 安全规划

规划GCP安全配置,包括防火墙规则、访问控制等。

Part03-生产环境项目实施方案

3.1 Cloud SQL for MySQL部署

Cloud SQL for MySQL的部署步骤:

# 步骤1:登录GCP控制台
https://console.cloud.google.com

# 步骤2:创建Cloud SQL实例
1. 在GCP控制台中,导航到”SQL”服务
2. 点击”创建实例”
3. 选择”MySQL”
4. 点击”下一步”

# 步骤3:配置实例信息
– 实例ID:输入唯一的实例ID
– 密码:设置root用户密码
– 数据库版本:选择MySQL版本(8.0或5.7)
– 区域:选择合适的GCP区域
– 可用区:选择可用区

# 步骤4:配置机器类型和存储
– 机器类型:选择合适的机器类型
– 存储类型:选择SSD或HDD
– 存储容量:设置存储容量

# 步骤5:配置连接
– 公共IP:选择是否启用公共IP
– 私有IP:选择是否启用私有IP
– 授权网络:添加允许访问的IP地址

# 步骤6:完成创建
点击”创建”

# 步骤7:连接到Cloud SQL for MySQL
# 使用gcloud命令行工具连接
# gcloud sql connect instance-name –user=root

# 输出示例
Whitelisting your IP for incoming connection for 5 minutes…done.
Connecting to database with SQL user [root].Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12345
Server version: 8.0.26-google (Google)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>

3.2 虚拟机部署MySQL

在GCP虚拟机上部署MySQL的步骤:

# 步骤1:创建GCP虚拟机
1. 在GCP控制台中,导航到”Compute Engine” → “VM实例”
2. 点击”创建实例”
3. 配置实例基本信息:
– 名称:输入实例名称
– 区域:选择合适的GCP区域
– 机器类型:选择合适的机器类型
– 启动磁盘:选择Linux发行版(如Ubuntu 20.04 LTS)
– 防火墙:选择”允许HTTP流量”和”允许HTTPS流量”

# 步骤2:完成创建
点击”创建”

# 步骤3:连接到虚拟机
# 使用SSH连接到虚拟机
# gcloud compute ssh instance-name

# 步骤4:在虚拟机上安装MySQL
# 更新系统
# sudo apt update
# sudo apt upgrade -y

# 安装MySQL
# sudo apt install mysql-server -y

# 启动MySQL服务
# sudo systemctl start mysql
# sudo systemctl enable mysql

# 安全配置
# sudo mysql_secure_installation

# 配置远程访问
# sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
# 将bind-address = 127.0.0.1修改为bind-address = 0.0.0.0

# 重启MySQL服务
# sudo systemctl restart mysql

# 创建远程访问用户
# sudo mysql -u root -p
mysql> CREATE USER ‘fgedu’@’%’ IDENTIFIED BY ‘Password123!’;
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘fgedu’@’%’ WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

# 配置GCP防火墙规则
# 在GCP控制台中,导航到”VPC网络” → “防火墙”
# 点击”创建防火墙规则”
# 配置规则:
# – 名称:allow-mysql
# – 目标:指定目标标签
# – 来源IP范围:0.0.0.0/0
# – 协议和端口:tcp:3306
# – 操作:允许

# 验证MySQL服务状态
# sudo systemctl status mysql
● mysql.service – MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2026-04-01 10:00:00 UTC; 1min ago
Process: 12345 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 12346 (mysqld)
Tasks: 38 (limit: 4915)
CGroup: /system.slice/mysql.service
└─12346 /usr/sbin/mysqld

Apr 01 10:00:00 instance-name systemd[1]: Starting MySQL Community Server…
Apr 01 10:00:00 instance-name systemd[1]: Started MySQL Community Server.

3.3 配置与优化

MySQL在GCP上的配置与优化:

# 配置MySQL参数
# sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
# 基础配置
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
pid-file=/var/run/mysqld/mysqld.pid

# 内存配置
innodb_buffer_pool_size=2G
key_buffer_size=256M
sort_buffer_size=2M
read_buffer_size=2M
read_rnd_buffer_size=4M
join_buffer_size=4M

# 连接配置
max_connections=500
max_connect_errors=10000
wait_timeout=3600
interactive_timeout=3600

# 日志配置
slow_query_log=1
slow_query_log_file=/var/log/mysql/slow.log
long_query_time=1
log_bin=/var/log/mysql/binlog/mysql-bin
expire_logs_days=7

# 存储引擎配置
innodb_file_per_table=1
innodb_flush_method=O_DIRECT
innodb_log_file_size=512M
innodb_log_buffer_size=32M

# 重启MySQL服务
# sudo systemctl restart mysql

# 验证配置
# mysql -u root -p -e “SHOW VARIABLES LIKE ‘innodb_buffer_pool_size’;”
+————————-+————+
| Variable_name | Value |
+————————-+————+
| innodb_buffer_pool_size | 2147483648 |
+————————-+————+

# 验证远程连接
# mysql -h instance-external-ip -u fgedu -p
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12345
Server version: 8.0.25-0ubuntu0.20.04.1 (Ubuntu)

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql>

Part04-生产案例与实战讲解

4.1 Cloud SQL for MySQL实战

Cloud SQL for MySQL的实际部署案例:

# 案例:部署Cloud SQL for MySQL实例

# 步骤1:登录gcloud CLI
# gcloud auth login

# 步骤2:设置项目
# gcloud config set project fgedu-project

# 步骤3:创建Cloud SQL实例
# gcloud sql instances create fgedu-mysql-instance \
–database-version=MYSQL_8_0 \
–tier=db-n1-standard-2 \
–region=asia-east1 \
–storage-type=SSD \
–storage-size=10 \
–root-password=Password123!

# 步骤4:配置防火墙规则
# gcloud sql instances patch fgedu-mysql-instance \
–authorized-networks=0.0.0.0/0

# 步骤5:连接到实例
# gcloud sql connect fgedu-mysql-instance –user=root

# 步骤6:创建数据库和用户
mysql> CREATE DATABASE fgedudb;
mysql> CREATE USER ‘fgedu’@’%’ IDENTIFIED BY ‘Password123!’;
mysql> GRANT ALL PRIVILEGES ON fgedudb.* TO ‘fgedu’@’%’;
mysql> FLUSH PRIVILEGES;

# 步骤7:验证数据库
mysql> USE fgedudb;
mysql> CREATE TABLE fgedu_users (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), email VARCHAR(100));
mysql> INSERT INTO fgedu_users (name, email) VALUES (‘张三’, ‘zhangsan@fgedu.net.cn’);
mysql> SELECT * FROM fgedu_users;
+—-+——–+————————+
| id | name | email |
+—-+——–+————————+
| 1 | 张三 | zhangsan@fgedu.net.cn |
+—-+——–+————————+

4.2 虚拟机部署MySQL实战

在GCP虚拟机上部署MySQL的实际案例:

# 案例:在Ubuntu虚拟机上部署MySQL

# 步骤1:创建GCP虚拟机
# gcloud compute instances create fgedu-mysql-vm \
–machine-type=e2-medium \
–image-family=ubuntu-2004-lts \
–image-project=ubuntu-os-cloud \
–zone=asia-east1-a \
–tags=mysql-server \
–metadata=startup-script=’#!/bin/bash
apt update
apt install -y mysql-server

# 步骤2:配置防火墙规则
# gcloud compute firewall-rules create allow-mysql \
–direction=INGRESS \
–priority=1000 \
–network=default \
–action=ALLOW \
–rules=tcp:3306 \
–source-ranges=0.0.0.0/0 \
–target-tags=mysql-server

# 步骤3:连接到虚拟机
# gcloud compute ssh fgedu-mysql-vm

# 步骤4:安全配置
# sudo mysql_secure_installation

# 步骤5:配置远程访问
# sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
# 将bind-address = 127.0.0.1修改为bind-address = 0.0.0.0

# 步骤6:重启MySQL服务
# sudo systemctl restart mysql

# 步骤7:创建远程访问用户
# sudo mysql -u root -p
mysql> CREATE USER ‘fgedu’@’%’ IDENTIFIED BY ‘Password123!’;
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘fgedu’@’%’ WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> EXIT;

# 步骤8:验证MySQL服务
# sudo systemctl status mysql

# 步骤9:验证远程连接
# mysql -h $(gcloud compute instances describe fgedu-mysql-vm –format=’get(networkInterfaces[0].accessConfigs[0].natIP)’) -u fgedu -p

# 步骤10:创建数据库和表
mysql> CREATE DATABASE fgedudb;
mysql> USE fgedudb;
mysql> CREATE TABLE fgedu_users (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50), email VARCHAR(100));
mysql> INSERT INTO fgedu_users (name, email) VALUES (‘李四’, ‘lisi@fgedu.net.cn’);
mysql> SELECT * FROM fgedu_users;
+—-+——–+———————-+
| id | name | email |
+—-+——–+———————-+
| 1 | 李四 | lisi@fgedu.net.cn |
+—-+——–+———————-+

Part05-风哥经验总结与分享

5.1 常见问题与解决方案

在GCP上部署MySQL时常见的问题包括:

  • 连接问题:确保防火墙规则正确配置,允许端口3306访问
  • 性能问题:根据业务需求选择合适的计算和存储配置
  • 安全问题:使用强密码,配置适当的防火墙规则
  • 成本问题:选择合适的GCP服务和资源配置

5.2 最佳实践建议

1. 选择合适的部署方式:根据业务需求选择Cloud SQL for MySQL或虚拟机部署
2. 合理规划资源:根据业务负载选择合适的计算和存储配置
3. 配置高可用:对于生产环境,配置高可用架构
4. 定期备份:配置定期备份策略
5. 监控性能:使用Cloud Monitoring监控MySQL性能
6. 安全加固:配置适当的安全措施,包括防火墙规则、访问控制等
7. 定期更新:保持MySQL版本和系统补丁的更新
8. 优化配置:根据业务需求优化MySQL参数
学习交流加群风哥QQ113257174

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息