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)