我需要更改谷歌云SQL中的隔离级别,我搜索了很多,但在我做的时候找不到它
设置全局事务隔离级别已提交读
它会被更改,但仅限于该会话而不是全局,即所有其他后续会话都不会更改。
谢谢
我想使用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 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) 我们将 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
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
关于连接外部应用程序的Cloud SQL 文档对我帮助不大。是不是有一些库来处理数据流量,比如 Firebase 的 Cloud Firestore 和实时数据库产品?
有谁有使用 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) 我正在使用 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
我有一个用于配置 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_protection,false但我不断收到相同的错误。有没有办法检查哪些资源需要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) 我正在尝试通过 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
google-cloud-sql ×10
terraform ×2
dart ×1
django ×1
flutter ×1
google-vpc ×1
innodb ×1
laravel ×1
laravel-5 ×1
mysql ×1
postgrest ×1
replication ×1
spring-boot ×1
unix-socket ×1