mysqlctld

mysqlctld

mysqlctld is a daemon that starts or initializes mysqld.

Synopsis

mysqlctld is a gRPC server that can be used instead of the mysqlctl client tool. If the target directories are empty when it is invoked, it automatically performs initialization operations to bootstrap the mysqld instance before starting it. The mysqlctld process can subsequently receive gRPC commands from a vttablet to perform housekeeping operations like shutting down and restarting the mysqld instance as needed.

mysqld_safe is not used so the mysqld process will not be automatically restarted in case of a failure.

To enable communication with a vttablet, the server must be configured to receive gRPC messages on a unix domain socket.

  1. mysqlctld [flags]

Examples

  1. mysqlctld \
  2. --log_dir=${VTDATAROOT}/logs \
  3. --tablet_uid=100 \
  4. --mysql_port=17100 \
  5. --socket_file=/path/to/socket_file

Options

  1. --alsologtostderr log to standard error as well as files
  2. --app_idle_timeout duration Idle timeout for app connections (default 1m0s)
  3. --app_pool_size int Size of the connection pool for app connections (default 40)
  4. --bind-address string Bind address for the server. If empty, the server will listen on all available unicast and anycast IP addresses of the local system.
  5. --catch-sigpipe catch and ignore SIGPIPE on stdout and stderr if specified
  6. --config-file string Full path of the config file (with extension) to use. If set, --config-path, --config-type, and --config-name are ignored.
  7. --config-file-not-found-handling ConfigFileNotFoundHandling Behavior when a config file is not found. (Options: error, exit, ignore, warn) (default warn)
  8. --config-name string Name of the config file (without extension) to search for. (default "vtconfig")
  9. --config-path strings Paths to search for config files in. (default [$WORKDIR])
  10. --config-persistence-min-interval duration minimum interval between persisting dynamic config changes back to disk (if no change has occurred, nothing is done). (default 1s)
  11. --config-type string Config file type (omit to infer config type from file extension).
  12. --db-credentials-file string db credentials file; send SIGHUP to reload this file
  13. --db-credentials-server string db credentials server type ('file' - file implementation; 'vault' - HashiCorp Vault implementation) (default "file")
  14. --db-credentials-vault-addr string URL to Vault server
  15. --db-credentials-vault-path string Vault path to credentials JSON blob, e.g.: secret/data/prod/dbcreds
  16. --db-credentials-vault-role-mountpoint string Vault AppRole mountpoint; can also be passed using VAULT_MOUNTPOINT environment variable (default "approle")
  17. --db-credentials-vault-role-secretidfile string Path to file containing Vault AppRole secret_id; can also be passed using VAULT_SECRETID environment variable
  18. --db-credentials-vault-roleid string Vault AppRole id; can also be passed using VAULT_ROLEID environment variable
  19. --db-credentials-vault-timeout duration Timeout for vault API operations (default 10s)
  20. --db-credentials-vault-tls-ca string Path to CA PEM for validating Vault server certificate
  21. --db-credentials-vault-tokenfile string Path to file containing Vault auth token; token can also be passed using VAULT_TOKEN environment variable
  22. --db-credentials-vault-ttl duration How long to cache DB credentials from the Vault server (default 30m0s)
  23. --db_charset string Character set used for this tablet. (default "utf8mb4")
  24. --db_conn_query_info enable parsing and processing of QUERY_OK info fields
  25. --db_connect_timeout_ms int connection timeout to mysqld in milliseconds (0 for no timeout)
  26. --db_dba_password string db dba password
  27. --db_dba_use_ssl Set this flag to false to make the dba connection to not use ssl (default true)
  28. --db_dba_user string db dba user userKey (default "vt_dba")
  29. --db_flags uint Flag values as defined by MySQL.
  30. --db_flavor string Flavor overrid. Valid value is FilePos.
  31. --db_host string The host name for the tcp connection.
  32. --db_port int tcp port
  33. --db_server_name string server name of the DB we are connecting to.
  34. --db_socket string The unix socket to connect on. If this is specified, host and port will not be used.
  35. --db_ssl_ca string connection ssl ca
  36. --db_ssl_ca_path string connection ssl ca path
  37. --db_ssl_cert string connection ssl certificate
  38. --db_ssl_key string connection ssl key
  39. --db_ssl_mode SslMode SSL mode to connect with. One of disabled, preferred, required, verify_ca & verify_identity.
  40. --db_tls_min_version string Configures the minimal TLS version negotiated when SSL is enabled. Defaults to TLSv1.2. Options: TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3.
  41. --dba_idle_timeout duration Idle timeout for dba connections (default 1m0s)
  42. --dba_pool_size int Size of the connection pool for dba connections (default 20)
  43. --grpc_auth_mode string Which auth plugin implementation to use (eg: static)
  44. --grpc_auth_mtls_allowed_substrings string List of substrings of at least one of the client certificate names (separated by colon).
  45. --grpc_auth_static_client_creds string When using grpc_static_auth in the server, this file provides the credentials to use to authenticate with server.
  46. --grpc_auth_static_password_file string JSON File to read the users/passwords from.
  47. --grpc_bind_address string Bind address for gRPC calls. If empty, listen on all addresses.
  48. --grpc_ca string server CA to use for gRPC connections, requires TLS, and enforces client certificate check
  49. --grpc_cert string server certificate to use for gRPC connections, requires grpc_key, enables TLS
  50. --grpc_compression string Which protocol to use for compressing gRPC. Default: nothing. Supported: snappy
  51. --grpc_crl string path to a certificate revocation list in PEM format, client certificates will be further verified against this file during TLS handshake
  52. --grpc_enable_optional_tls enable optional TLS mode when a server accepts both TLS and plain-text connections on the same port
  53. --grpc_initial_conn_window_size int gRPC initial connection window size
  54. --grpc_initial_window_size int gRPC initial window size
  55. --grpc_keepalive_time duration After a duration of this time, if the client doesn't see any activity, it pings the server to see if the transport is still alive. (default 10s)
  56. --grpc_keepalive_timeout duration After having pinged for keepalive check, the client waits for a duration of Timeout and if no activity is seen even after that the connection is closed. (default 10s)
  57. --grpc_key string server private key to use for gRPC connections, requires grpc_cert, enables TLS
  58. --grpc_max_connection_age duration Maximum age of a client connection before GoAway is sent. (default 2562047h47m16.854775807s)
  59. --grpc_max_connection_age_grace duration Additional grace period after grpc_max_connection_age, after which connections are forcibly closed. (default 2562047h47m16.854775807s)
  60. --grpc_port int Port to listen on for gRPC calls. If zero, do not listen.
  61. --grpc_server_ca string path to server CA in PEM format, which will be combine with server cert, return full certificate chain to clients
  62. --grpc_server_initial_conn_window_size int gRPC server initial connection window size
  63. --grpc_server_initial_window_size int gRPC server initial window size
  64. --grpc_server_keepalive_enforcement_policy_min_time duration gRPC server minimum keepalive time (default 10s)
  65. --grpc_server_keepalive_enforcement_policy_permit_without_stream gRPC server permit client keepalive pings even when there are no active streams (RPCs)
  66. -h, --help help for mysqlctld
  67. --init_db_sql_file string Path to .sql file to run after mysqld initialization
  68. --keep_logs duration keep logs for this long (using ctime) (zero to keep forever)
  69. --keep_logs_by_mtime duration keep logs for this long (using mtime) (zero to keep forever)
  70. --lameduck-period duration keep running at least this long after SIGTERM before stopping (default 50ms)
  71. --log_backtrace_at traceLocation when logging hits line file:N, emit a stack trace (default :0)
  72. --log_dir string If non-empty, write log files in this directory
  73. --log_err_stacks log stack traces for errors
  74. --log_rotate_max_size uint size in bytes at which logs are rotated (glog.MaxSize) (default 1887436800)
  75. --logtostderr log to standard error instead of files
  76. --max-stack-size int configure the maximum stack size in bytes (default 67108864)
  77. --mysql_port int MySQL port (default 3306)
  78. --mysql_server_version string MySQL server version to advertise. (default "8.0.30-Vitess")
  79. --mysql_socket string Path to the mysqld socket file
  80. --mysqlctl_mycnf_template string template file to use for generating the my.cnf file during server init
  81. --mysqlctl_socket string socket file to use for remote mysqlctl actions (empty for local actions)
  82. --onclose_timeout duration wait no more than this for OnClose handlers before stopping (default 10s)
  83. --onterm_timeout duration wait no more than this for OnTermSync handlers before stopping (default 10s)
  84. --pid_file string If set, the process will write its pid to the named file, and delete it on graceful shutdown.
  85. --pool_hostname_resolve_interval duration if set force an update to all hostnames and reconnect if changed, defaults to 0 (disabled)
  86. --port int port for the server
  87. --pprof strings enable profiling
  88. --purge_logs_interval duration how often try to remove old logs (default 1h0m0s)
  89. --replication_connect_retry duration how long to wait in between replica reconnect attempts. Only precise to the second. (default 10s)
  90. --security_policy string the name of a registered security policy to use for controlling access to URLs - empty means allow all for anyone (built-in policies: deny-all, read-only)
  91. --service_map strings comma separated list of services to enable (or disable if prefixed with '-') Example: grpc-queryservice
  92. --socket_file string Local unix socket file to listen on
  93. --stderrthreshold severity logs at or above this threshold go to stderr (default 1)
  94. --table-refresh-interval int interval in milliseconds to refresh tables in status page with refreshRequired class
  95. --tablet_dir string The directory within the vtdataroot to store vttablet/mysql files. Defaults to being generated by the tablet uid.
  96. --tablet_uid uint32 Tablet UID (default 41983)
  97. --v Level log level for V logs
  98. -v, --version print binary version
  99. --vmodule moduleSpec comma-separated list of pattern=N settings for file-filtered logging
  100. --wait_time duration How long to wait for mysqld startup or shutdown (default 5m0s)