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.

mysqlctld [flags]

Examples #

mysqlctld \
	--log-dir=${VTDATAROOT}/logs \
	--tablet-uid=100 \
	--mysql-port=17100 \
	--socket-file=/path/to/socket-file

Options #

      --alsologtostderr                                                  log to standard error as well as files
      --app-idle-timeout duration                                        Idle timeout for app connections (default 1m0s)
      --app-pool-size int                                                Size of the connection pool for app connections (default 40)
      --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.
      --catch-sigpipe                                                    catch and ignore SIGPIPE on stdout and stderr if specified
      --config-file string                                               Full path of the config file (with extension) to use. If set, --config-path, --config-type, and --config-name are ignored.
      --config-file-not-found-handling ConfigFileNotFoundHandling        Behavior when a config file is not found. (Options: error, exit, ignore, warn) (default warn)
      --config-name string                                               Name of the config file (without extension) to search for. (default "vtconfig")
      --config-path strings                                              Paths to search for config files in. (default [<WORKDIR>])
      --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)
      --config-type string                                               Config file type (omit to infer config type from file extension).
      --db-charset string                                                Character set/collation used for this tablet. Make sure to configure this to a charset/collation supported by the lowest MySQL version in your environment. (default "utf8mb4")
      --db-conn-query-info                                               enable parsing and processing of QUERY_OK info fields
      --db-connect-timeout-ms int                                        connection timeout to mysqld in milliseconds (0 for no timeout)
      --db-credentials-file string                                       db credentials file; send SIGHUP to reload this file
      --db-credentials-server string                                     db credentials server type ('file' - file implementation; 'vault' - HashiCorp Vault implementation) (default "file")
      --db-credentials-vault-addr string                                 URL to Vault server
      --db-credentials-vault-path string                                 Vault path to credentials JSON blob, e.g.: secret/data/prod/dbcreds
      --db-credentials-vault-role-mountpoint string                      Vault AppRole mountpoint; can also be passed using VAULT_MOUNTPOINT environment variable (default "approle")
      --db-credentials-vault-role-secretidfile string                    Path to file containing Vault AppRole secret_id; can also be passed using VAULT_SECRETID environment variable
      --db-credentials-vault-roleid string                               Vault AppRole id; can also be passed using VAULT_ROLEID environment variable
      --db-credentials-vault-timeout duration                            Timeout for vault API operations (default 10s)
      --db-credentials-vault-tls-ca string                               Path to CA PEM for validating Vault server certificate
      --db-credentials-vault-tokenfile string                            Path to file containing Vault auth token; token can also be passed using VAULT_TOKEN environment variable
      --db-credentials-vault-ttl duration                                How long to cache DB credentials from the Vault server (default 30m0s)
      --db-dba-password string                                           db dba password
      --db-dba-use-ssl                                                   Set this flag to false to make the dba connection to not use ssl (default true)
      --db-dba-user string                                               db dba user userKey (default "vt_dba")
      --db-flags uint                                                    Flag values as defined by MySQL.
      --db-flavor string                                                 Flavor overrid. Valid value is FilePos.
      --db-host string                                                   The host name for the tcp connection.
      --db-port int                                                      tcp port
      --db-server-name string                                            server name of the DB we are connecting to.
      --db-socket string                                                 The unix socket to connect on. If this is specified, host and port will not be used.
      --db-ssl-ca string                                                 connection ssl ca
      --db-ssl-ca-path string                                            connection ssl ca path
      --db-ssl-cert string                                               connection ssl certificate
      --db-ssl-key string                                                connection ssl key
      --db-ssl-mode SslMode                                              SSL mode to connect with. One of disabled, preferred, required, verify_ca & verify_identity.
      --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.
      --dba-idle-timeout duration                                        Idle timeout for dba connections (default 1m0s)
      --dba-pool-size int                                                Size of the connection pool for dba connections (default 20)
      --grpc-auth-mode string                                            Which auth plugin implementation to use (eg: static)
      --grpc-auth-mtls-allowed-substrings string                         List of substrings of at least one of the client certificate names (separated by colon).
      --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.
      --grpc-auth-static-password-file string                            JSON File to read the users/passwords from.
      --grpc-bind-address string                                         Bind address for gRPC calls. If empty, listen on all addresses.
      --grpc-ca string                                                   server CA to use for gRPC connections, requires TLS, and enforces client certificate check
      --grpc-cert string                                                 server certificate to use for gRPC connections, requires grpc-key, enables TLS
      --grpc-compression string                                          Which protocol to use for compressing gRPC. Default: nothing. Supported: snappy
      --grpc-crl string                                                  path to a certificate revocation list in PEM format, client certificates will be further verified against this file during TLS handshake
      --grpc-dial-concurrency-limit int                                  Maximum concurrency of grpc dial operations. This should be less than the golang max thread limit of 10000. (default 1024)
      --grpc-enable-optional-tls                                         enable optional TLS mode when a server accepts both TLS and plain-text connections on the same port
      --grpc-enable-orca-metrics                                         gRPC server option to enable sending ORCA metrics to clients for load balancing
      --grpc-initial-conn-window-size int                                gRPC initial connection window size
      --grpc-initial-window-size int                                     gRPC initial window size
      --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)
      --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)
      --grpc-key string                                                  server private key to use for gRPC connections, requires grpc-cert, enables TLS
      --grpc-max-connection-age duration                                 Maximum age of a client connection before GoAway is sent. (default 2562047h47m16.854775807s)
      --grpc-max-connection-age-grace duration                           Additional grace period after grpc-max-connection-age, after which connections are forcibly closed. (default 2562047h47m16.854775807s)
      --grpc-port int                                                    Port to listen on for gRPC calls. If zero, do not listen.
      --grpc-server-ca string                                            path to server CA in PEM format, which will be combine with server cert, return full certificate chain to clients
      --grpc-server-initial-conn-window-size int                         gRPC server initial connection window size
      --grpc-server-initial-window-size int                              gRPC server initial window size
      --grpc-server-keepalive-enforcement-policy-min-time duration       gRPC server minimum keepalive time (default 10s)
      --grpc-server-keepalive-enforcement-policy-permit-without-stream   gRPC server permit client keepalive pings even when there are no active streams (RPCs)
      --grpc-server-keepalive-time duration                              After a duration of this time, if the server doesn't see any activity, it pings the client to see if the transport is still alive. (default 10s)
      --grpc-server-keepalive-timeout duration                           After having pinged for keepalive check, the server waits for a duration of Timeout and if no activity is seen even after that the connection is closed. (default 10s)
  -h, --help                                                             help for mysqlctld
      --init-db-sql-file string                                          Path to .sql file to run after mysqld initialization
      --keep-logs duration                                               keep logs for this long (using ctime) (zero to keep forever)
      --keep-logs-by-mtime duration                                      keep logs for this long (using mtime) (zero to keep forever)
      --lameduck-period duration                                         keep running at least this long after SIGTERM before stopping (default 50ms)
      --log-err-stacks                                                   log stack traces for errors
      --log-rotate-max-size uint                                         size in bytes at which logs are rotated (glog.MaxSize) (default 1887436800)
      --log-backtrace-at traceLocations                                  when logging hits line file:N, emit a stack trace
      --log-dir string                                                   If non-empty, write log files in this directory
      --logtostderr                                                      log to standard error instead of files
      --max-stack-size int                                               configure the maximum stack size in bytes (default 67108864)
      --mysql-port int                                                   MySQL port (default 3306)
      --mysql-server-version string                                      MySQL server version to advertise. (default "8.4.6-Vitess")
      --mysql-socket string                                              Path to the mysqld socket file
      --mysqlctl-mycnf-template string                                   template file to use for generating the my.cnf file during server init
      --mysqlctl-socket string                                           socket file to use for remote mysqlctl actions (empty for local actions)
      --onclose-timeout duration                                         wait no more than this for OnClose handlers before stopping (default 10s)
      --onterm-timeout duration                                          wait no more than this for OnTermSync handlers before stopping (default 5m10s)
      --pid-file string                                                  If set, the process will write its pid to the named file, and delete it on graceful shutdown.
      --pool-hostname-resolve-interval duration                          if set force an update to all hostnames and reconnect if changed, defaults to 0 (disabled)
      --port int                                                         port for the server
      --pprof strings                                                    enable profiling
      --pprof-http                                                       enable pprof http endpoints
      --purge-logs-interval duration                                     how often try to remove old logs (default 1h0m0s)
      --replication-connect-retry duration                               how long to wait in between replica reconnect attempts. Only precise to the second. (default 10s)
      --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)
      --service-map strings                                              comma separated list of services to enable (or disable if prefixed with '-') Example: grpc-queryservice
      --shutdown-wait-time duration                                      How long to wait for mysqld shutdown (default 5m0s)
      --socket-file string                                               Local unix socket file to listen on
      --stderrthreshold severityFlag                                     logs at or above this threshold go to stderr (default 1)
      --table-refresh-interval int                                       interval in milliseconds to refresh tables in status page with refreshRequired class
      --tablet-dir string                                                The directory within the vtdataroot to store vttablet/mysql files. Defaults to being generated by the tablet uid.
      --tablet-uid uint32                                                Tablet UID (default 41983)
      --v Level                                                          log level for V logs
  -v, --version                                                          print binary version
      --vmodule vModuleFlag                                              comma-separated list of pattern=N settings for file-filtered logging
      --wait-time duration                                               How long to wait for mysqld startup (default 5m0s)