标签: google-cloud-sql

更改Google Cloud SQL中的全局隔离级别

我需要更改谷歌云SQL中的隔离级别,我搜索了很多,但在我做的时候找不到它

设置全局事务隔离级别已提交读

它会被更改,但仅限于该会话而不是全局,即所有其他后续会话都不会更改。

谢谢

google-app-engine google-cloud-sql

6
推荐指数
1
解决办法
883
查看次数

如何使用 gcloud sql 导出而不在 sql 文件上添加“CREATE DATABASE”和“USE”

我想使用gcloud sql instance export命令导出一个数据库,将其导入到同一服务器上的另一个数据库。

问题是使用:

gcloud sql instances export instancename gs://bucket/dbname.sql.gz -d=dbname

将以下内容添加到 sql 文件的顶部:

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `dbname` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `dbname`;
Run Code Online (Sandbox Code Playgroud)

由于我希望能够使用 导入 sql 文件到另一个数据库gcloud sql instance import,因此USE dbname导入会转到 dbname 数据库而不是其他数据库。

那么有没有办法让我导出数据库但不将其添加到文件中?我搜索了该命令的文档,但没有找到任何与之相关的内容。

google-cloud-sql google-cloud-platform

6
推荐指数
1
解决办法
2442
查看次数

virtualenv: 无法访问 lib: 没有这样的 virtualenv 或站点目录

我正在使用 Google Cloud Platform 创建一个基于 Django 的 http API,它使用 Google 的云 SQL API 和机器学习 API。

我在我的电脑上制作了一个 django-mysql 应用程序,并且能够在本地主机上成功测试它。我想将此应用部署到 Google Cloud。

以下是我的相关文件: app.yaml:-

runtime: python27
api_version: 1
threadsafe: yes

handlers:
- url: /static
  static_dir: static/
- url: .*
  script: mysite.wsgi.application

libraries:
- name: MySQLdb
  version: 1.2.5
- name: numpy
  version: "1.6.1"


skip_files:
- ^(.*/)?- ^(.*/)?.*~$
- ^(.*/)?.*\.py[co]$
- ^(.*/)?.*/RCS/.*$
- ^(.*/)?\..*$
- ^env/.*$
Run Code Online (Sandbox Code Playgroud)

appengine_config.py:-

from google.appengine.ext import vendor
import os
vendor.add(os.path.join(os.path.dirname(os.path.realpath(__file__)), 'lib'))
Run Code Online (Sandbox Code Playgroud)

我在 api home 上收到 500 错误。在这里。我在仪表板上收到以下错误报告:-

Traceback …
Run Code Online (Sandbox Code Playgroud)

django google-app-engine google-cloud-sql

6
推荐指数
1
解决办法
3479
查看次数

Google SQL 副本落后于 master

我们将 Google Cloud SQL 数据库与复制一起使用,并且从三天以来,我们的主从复制一直落后并且没有赶上。

可能是什么原因,我们能做什么?

到目前为止我们做了什么:

当我们意识到我们在 Google Cloud 中的 mysql 副本与主服务器不同步时,它就开始了。我查看了日志并注意到以下错误消息在 3 天前异常频繁地发生。

"2018-05-03T08:31:07.851491Z 0 [Note] InnoDB: page_cleaner: 1000ms intended loop took 5539ms. The settings might not be optimal. (flushed=289 and evicted=0, during the time.)"
Run Code Online (Sandbox Code Playgroud)

直到现在,此消息仍会出现在错误日志中。我用谷歌搜索并找到了这个 stackoverflow 线程:

如何解决 mysql 警告:“InnoDB:page_cleaner:1000ms 预期循环花了 XXX ms。设置可能不是最佳的”?

提到以下设置可以帮助解决这个问题 innodb_lru_scan_depth to 256

但是,我们的数据库在 Google Cloud 中,我们无法自定义.my.cnf。无法更改上述标志。

大约三天前我们执行了一个脚本,它删除了我们数据库中的大量数据。我假设它创建了很多“ dirty_pages ”,这些在我上面链接的stackoverflow线程中提到过。为了获取更多信息,我连接到副本并发出命令

SHOW SLAVE STATUS\G;
Run Code Online (Sandbox Code Playgroud)

显示从机状态。以下是我觉得可疑的一些点

        *************************** 1. row ***************************
               Slave_IO_State: Queueing master event to the relay log
                  Master_Host: IPAdress
                  Master_User: Master …
Run Code Online (Sandbox Code Playgroud)

mysql replication innodb google-cloud-sql google-cloud-platform

6
推荐指数
0
解决办法
1461
查看次数

无法使用 spring cloud gcp starter 将 Spring Boot 与 Cloud SQL 连接

Spring Boot 新手尝试使用第二代 Cloud SQL (mysql) 将我的应用程序托管在 GCP AppEngineFlexible 上。

使用我从这里获得的 Spring Cloud GCP 启动器: https://github.com/spring-cloud/spring-cloud-gcp/tree/master/spring-cloud-gcp-samples/spring-cloud-gcp-sql-示例,我正在尝试让本地 Spring Boot 应用程序连接到 Cloud SQL。当尝试在本地 Tomcat 上运行 SQLApplication 时,我得到:

2018-07-28 20:57:35.663  INFO 66641 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2018-07-28 20:57:36.730 ERROR 66641 --- [           main] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Exception during pool initialization.

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create socket factory 'com.google.cloud.sql.mysql.SocketFactory' due to underlying exception: 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_171]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_171]
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_171]
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[na:1.8.0_171]
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) ~[mysql-connector-java-5.1.26-bin.jar:na] …
Run Code Online (Sandbox Code Playgroud)

google-app-engine google-cloud-sql spring-boot google-cloud-platform

6
推荐指数
1
解决办法
8334
查看次数

如何在 Google Cloud SQL 和 Flutter 之间传输数据?

关于连接外部应用程序的Cloud SQL 文档对我帮助不大。是不是有一些库来处理数据流量,比如 Firebase 的 Cloud Firestore 和实时数据库产品?

dart google-cloud-sql flutter

6
推荐指数
1
解决办法
1088
查看次数

Google Cloud SQL 上的 PostgREST:unix 套接字 URI 格式?

有谁有使用 PostgREST 和 Cloud SQL 的经验吗?

我的 SQL 实例已准备好开放访问 (0.0.0.0/0),我可以使用云代理应用程序通过本地 PostGREST 访问它。

现在我想从同一个项目的实例运行 Postgrest,但我找不到支持 Cloud SQL 格式的 Postgrest URI 格式,因为 Google SQL Cloud 只使用像 /cloudsql/INSTANCE_CONNECTION_NAME

配置 1

db-uri = "postgres://postgres:password@/unix(/cloudsql/INSTANCE_CONNECTION_NAME)/mydatabase"
db-schema = "api"
jwt-secret = "OOcJ7VoSY1mXqod4MKtb9WCCwt9erJkRQ2tzYmLb4Xe="
db-anon-role = "web_anon"
server-port=3000
Run Code Online (Sandbox Code Playgroud)

退货 {"details":"could not translate host name \"unix(\" to address: Unknown host\n","code":"","message":"Database connection error"}

配置 2

db-uri = "postgres://postgres:password@/mydatabase?unix_socket=/cloudsql/INSTANCE_CONNECTION_NAME"
db-schema = "api"
jwt-secret = "OOcJ7VoSY1mXqod4MKtb9WCCwt9erJkRQ2tzYmLb4Xe="
db-anon-role = "web_anon"
server-port=3000
Run Code Online (Sandbox Code Playgroud)

解析器拒绝问号 {"details":"invalid URI query parameter: \"unix_socket\"\n","code":"","message":"Database connection error"}

配置 3

db-uri = …
Run Code Online (Sandbox Code Playgroud)

unix-socket google-cloud-sql postgrest

6
推荐指数
1
解决办法
1066
查看次数

无法在 Google Cloud SQL 中运行迁移

我正在使用 Laravel 5.3,并按照本教程设置 Google Cloud:

https://cloud.google.com/community/tutorials/run-laravel-on-appengine-standard

我正在尝试运行我的数据库迁移,所以我这样做:

export DB_DATABASE=db DB_USERNAME=root DB_PASSWORD=<my_db_password> DB_SOCKET="<my_connection_name>"
php artisan migrate --force
Run Code Online (Sandbox Code Playgroud)

但是我在终端中得到以下输出:

[Illuminate\Database\QueryException]
SQLSTATE[HY000] [2002] 没有这样的文件或目录(SQL:select * from
information_schema.tables where table_schema = db and table_name = migrations)

[Doctrine\DBAL\Driver\PDOException]
SQLSTATE[HY000] [2002] 没有这样的文件或目录

[PDOException]
SQLSTATE[HY000] [2002] 没有那个文件或目录

如果我尝试通过 MySQL Workbench 连接到服务器,它连接正常。

这是我的 app.yaml 文件(我删除了敏感信息):

runtime: php72

runtime_config:
    document_root: public

env_variables:
    APP_LOG: errorlog
    # Application key
    APP_KEY: <my_app_key>
    # Storage path
    APP_STORAGE: /tmp
    VIEW_COMPILED_PATH: /tmp
    CACHE_DRIVER: database
    SESSION_DRIVER: database
    # Database configuration
    DB_CONNECTION: mysql
    DB_SOCKET: /cloudsql/<my_connection_name>
    DB_HOST: 127.0.0.1 …
Run Code Online (Sandbox Code Playgroud)

google-app-engine laravel google-cloud-sql google-cloud-platform laravel-5

6
推荐指数
1
解决办法
507
查看次数

GCP Cloud SQL 未能删除实例,因为 `deletion_protection` 设置为 true

我有一个用于配置 Cloud SQL 实例的 tf 脚本,以及几个数据库和一个管理员用户。我已重命名该实例,因此创建了一个新实例,但 terraform 在删除旧实例时遇到了问题。

Error: Error, failed to delete instance because deletion_protection is set to true. Set it to false to proceed with instance deletion
Run Code Online (Sandbox Code Playgroud)

我试过将 设置为deletion_protectionfalse但我不断收到相同的错误。有没有办法检查哪些资源需要deletion_protection设置为 false 才能被删除?我只将它添加到google_sql_database_instance资源中。

我的 tf 脚本:

// Provision the Cloud SQL Instance
resource "google_sql_database_instance" "instance-master" {
  name             = "instance-db-${random_id.random_suffix_id.hex}"
  region           = var.region
  database_version = "POSTGRES_12"

  project = var.project_id

  settings {
    availability_type = "REGIONAL"
    tier              = "db-f1-micro"
    activation_policy = "ALWAYS"
    disk_type         = "PD_SSD" …
Run Code Online (Sandbox Code Playgroud)

google-cloud-sql google-cloud-platform terraform

6
推荐指数
1
解决办法
2924
查看次数

不正确的服务网络配置,例如:xxxx:SERVICE_NETWORKING_NOT_ENABLED

我正在尝试通过 terraform 在 GCP 中复制 SQL 实例。活动实例具有公共 IP,但是辅助项目的子网与托管 SQL 实例的项目共享,并且 SQL 实例与辅助项目的网络相关联。

我已经private_network在该ip_configuration部分正确添加了设置(我认为),但是我收到以下错误:

错误:错误,无法创建实例 xxxx:googleapi:错误 400:无效请求:服务网络配置不正确,例如:xxxx:xxxxx:SERVICE_NETWORKING_NOT_ENABLED.,无效

当我用谷歌搜索那个特定错误时,我找不到太多文档,而且我对 Terraform 还比较陌生,所以我希望有人能指出我在 Terraform 配置的这一部分或其他资源中遗漏了什么.

resource "google_sql_database_instance" "cloudsql-instance-qa" {
  depends_on       = [google_project_service.project_apis]
  database_version = "MYSQL_5_7"
  name             = "${var.env_shorthand}-${var.resource_name}"
  project          = var.project_id
  region           = var.region

  settings {
    activation_policy = "ALWAYS"
    availability_type = "ZONAL"

    backup_configuration {
      binary_log_enabled             = "true"
      enabled                        = "true"
      point_in_time_recovery_enabled = "false"
      start_time                     = "15:00"
    }

    crash_safe_replication = "false"
    disk_autoresize        = "true"
    disk_size              = "5003"
    disk_type              = "PD_SSD"

    ip_configuration …
Run Code Online (Sandbox Code Playgroud)

google-cloud-sql google-cloud-platform terraform terraform-provider-gcp google-vpc

6
推荐指数
1
解决办法
1344
查看次数