mysqlctl
mysqlctl is a command-line client used for managing mysqld instances. It is responsible for bootstrapping tasks such as generating a configuration file for mysqld and initializing the instance and its data directory.
The mysqld_safe watchdog is utilized when present. This helps ensure that mysqld is automatically restarted after failures.
Commands #
init [--wait_time=5m] [--init_db_sql_file=(default)] #
Bootstraps a new mysqld instance, initializes its data directory, and starts the instance. The MySQL version and flavor will be auto-detected, with a minimal configuration file applied. For example:
export VTDATAROOT=/tmp
mysqlctl \
--alsologtostderr \
--tablet_uid 101 \
--mysql_port 12345 \
init
init_config #
Bootstraps the configuration for a new mysqld instance and initializes its data directory. This command is the same as init except the mysqld server will not be started. For example:
export VTDATAROOT=/tmp
mysqlctl \
--alsologtostderr \
--tablet_uid 101 \
--mysql_port 12345 \
init_config
reinit_config #
Regenerate new configuration files for an existing mysqld instance (generating new server_id and server_uuid values). This could be helpful to revert configuration changes, or to pick up changes made to the bundled config in newer Vitess versions. For example:
export VTDATAROOT=/tmp
mysqlctl \
--alsologtostderr \
--tablet_uid 101 \
--mysql_port 12345 \
reinit_config
teardown [--wait_time=5m] [--force] #
Shuts down a mysqld instance and removes its data directory. For example:
export VTDATAROOT=/tmp
mysqlctl --tablet_uid 101 --alsologtostderr teardown
start [--wait_time=5m] #
Resume an existing mysqld instance that was previously bootstrapped with init or init_config:
export VTDATAROOT=/tmp
mysqlctl --tablet_uid 101 --alsologtostderr start
shutdown [--wait_time=5m] #
Stop a mysqld instance that was previously started with init or start.
For large mysqld instances, you may need to extend the wait_time to shutdown cleanly.
export VTDATAROOT=/tmp
mysqlctl --tablet_uid 101 --alsologtostderr shutdown
Options #
The following global parameters apply to mysqlctl:
| Name | Type | Definition |
|---|---|---|
| --alsologtostderr | boolean | 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) |
| --catch-sigpipe | boolean | catch and ignore SIGPIPE on stdout and stderr if specified |
| --db-credentials-file | string | db credentials file; send SIGHUP to reload this file |
| --db-credentials-server | string | db credentials server type (use 'file' for the file 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_charset | string | Character set. Only utf8 or latin1 based character sets are supported. |
| --db_conn_query_info | boolean | 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_dba_password | string | db dba password |
| --db_dba_use_ssl | boolean | Set this flag to false to make the dba connection 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 | string | 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) |
| -h, --help | display usage and exit | |
| --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_backtrace_at | value | when logging hits line file:N, emit a stack trace |
| --log_dir | string | If non-empty, write log files in this directory |
| --log_err_stacks | boolean | log stack traces for errors |
| --log_rotate_max_size | uint | size in bytes at which logs are rotated (glog.MaxSize) (default 1887436800) |
| --logtostderr | boolean | 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. |
| --mysql_server_flush_delay | duration | Delay after which buffered response will be flushed to the client. (default 100ms) |
| --mysql_socket | string | path to the mysql socket |
| --mysqlctl_client_protocol | string | the protocol to use to talk to the mysqlctl server (default "grpc") |
| --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) |
| --mysqlctl_client_protocol | string | the protocol to use to talk to the mysqlctl server (default "grpc") |
| --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) |
| --onterm_timeout | duration | wait no more than this for OnTermSync handlers before stopping (default 10s) |
| --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) |
| --pprof | strings | enable profiling |
| --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 | value | comma separated list of services to enable (or disable if prefixed with '-') Example: grpc-queryservice |
| --socket_file | string | Local unix socket file to listen on |
| --stderrthreshold | value | logs at or above this threshold go to stderr (default 1) |
| --tablet_dir | string | The directory within the vtdataroot to store vttablet/mysql files. Defaults to being generated by the tablet uid. |
| --tablet_uid | uint | Tablet UID (default 41983) |
| --v | value | log level for V logs |
| -v, --version | boolean | print binary version |
| --vmodule | string | comma-separated list of pattern=N settings for file-filtered logging |