Struct mysql_async::Opts
source · pub struct Opts { /* private fields */ }
Expand description
Mysql connection options.
Build one with OptsBuilder
.
Implementations§
source§impl Opts
impl Opts
pub fn from_url(url: &str) -> Result<Opts, UrlError>
sourcepub fn ip_or_hostname(&self) -> &str
pub fn ip_or_hostname(&self) -> &str
Address of mysql server (defaults to 127.0.0.1
). Hostnames should also work.
sourcepub fn user(&self) -> Option<&str>
pub fn user(&self) -> Option<&str>
User (defaults to None
).
Connection URL
Can be defined in connection URL. E.g.
let opts = Opts::from_url("mysql://user@localhost/database_name")?;
assert_eq!(opts.user(), Some("user"));
sourcepub fn pass(&self) -> Option<&str>
pub fn pass(&self) -> Option<&str>
Password (defaults to None
).
Connection URL
Can be defined in connection URL. E.g.
let opts = Opts::from_url("mysql://user:pass%20word@localhost/database_name")?;
assert_eq!(opts.pass(), Some("pass word"));
sourcepub fn db_name(&self) -> Option<&str>
pub fn db_name(&self) -> Option<&str>
Database name (defaults to None
).
Connection URL
Database name can be defined in connection URL. E.g.
let opts = Opts::from_url("mysql://localhost/database_name")?;
assert_eq!(opts.db_name(), Some("database_name"));
sourcepub fn tcp_keepalive(&self) -> Option<u32>
pub fn tcp_keepalive(&self) -> Option<u32>
TCP keep alive timeout in milliseconds (defaults to None
).
Connection URL
You can use tcp_keepalive
URL parameter to set this value (in milliseconds). E.g.
let opts = Opts::from_url("mysql://localhost/db?tcp_keepalive=10000")?;
assert_eq!(opts.tcp_keepalive(), Some(10_000));
sourcepub fn tcp_nodelay(&self) -> bool
pub fn tcp_nodelay(&self) -> bool
Set the TCP_NODELAY
option for the mysql connection (defaults to true
).
Setting this option to false re-enables Nagle’s algorithm, which can cause unusually high latency (~40ms) but may increase maximum throughput. See #132.
Connection URL
You can use tcp_nodelay
URL parameter to set this value. E.g.
let opts = Opts::from_url("mysql://localhost/db?tcp_nodelay=false")?;
assert_eq!(opts.tcp_nodelay(), false);
sourcepub fn local_infile_handler(&self) -> Option<Arc<dyn GlobalHandler>>
pub fn local_infile_handler(&self) -> Option<Arc<dyn GlobalHandler>>
Handler for local infile requests (defaults to None
).
sourcepub fn pool_opts(&self) -> &PoolOpts
pub fn pool_opts(&self) -> &PoolOpts
Connection pool options (defaults to Default::default
).
sourcepub fn conn_ttl(&self) -> Option<Duration>
pub fn conn_ttl(&self) -> Option<Duration>
Pool will close connection if time since last IO exceeds this number of seconds
(defaults to wait_timeout
. None
to reset to default).
Connection URL
You can use conn_ttl
URL parameter to set this value (in seconds). E.g.
let opts = Opts::from_url("mysql://localhost/db?conn_ttl=360")?;
assert_eq!(opts.conn_ttl(), Some(Duration::from_secs(360)));
sourcepub fn stmt_cache_size(&self) -> usize
pub fn stmt_cache_size(&self) -> usize
Number of prepared statements cached on the client side (per connection). Defaults to
DEFAULT_STMT_CACHE_SIZE
.
Call with None
to reset to default. Set to 0
to disable statement cache.
Caveats
If statement cache is disabled (stmt_cache_size
is 0
), then you must close statements
manually.
Connection URL
You can use stmt_cache_size
URL parameter to set this value. E.g.
let opts = Opts::from_url("mysql://localhost/db?stmt_cache_size=128")?;
assert_eq!(opts.stmt_cache_size(), 128);
sourcepub fn ssl_opts(&self) -> Option<&SslOpts>
pub fn ssl_opts(&self) -> Option<&SslOpts>
Driver will require SSL connection if this opts isn’t None
(defaults to None
).
Connection URL parameters
Note that for securty reasons:
- CA and IDENTITY verifications are opt-out
- there is no way to give an idenity or root certs via query URL
URL Parameters:
require_ssl: bool
(defaults tofalse
) – requires SSL with defaultSslOpts
verify_ca: bool
(defaults totrue
) – requires server Certificate Authority (CA) certificate validation against the configured CA certificates. Makes no sence ifrequire_ssl
equalsfalse
.verify_identity: bool
(defaults totrue
) – perform host name identity verification by checking the host name the client uses for connecting to the server against the identity in the certificate that the server sends to the client. Makes no sence ifrequire_ssl
equalsfalse
.
sourcepub fn prefer_socket(&self) -> bool
pub fn prefer_socket(&self) -> bool
Prefer socket connection (defaults to true
temporary false
on Windows platform).
Will reconnect via socket (or named pipe on Windows) after TCP connection to 127.0.0.1
if true
.
Will fall back to TCP on error. Use socket
option to enforce socket connection.
Note
Library will query the @@socket
server variable to get socket address,
and this address may be incorrect in some cases (e.g. docker).
Connection URL
You can use prefer_socket
URL parameter to set this value. E.g.
let opts = Opts::from_url("mysql://localhost/db?prefer_socket=false")?;
assert_eq!(opts.prefer_socket(), false);
sourcepub fn socket(&self) -> Option<&str>
pub fn socket(&self) -> Option<&str>
Path to unix socket (or named pipe on Windows) (defaults to None
).
Connection URL
You can use socket
URL parameter to set this value. E.g.
let opts = Opts::from_url("mysql://localhost/db?socket=%2Fpath%2Fto%2Fsocket")?;
assert_eq!(opts.socket(), Some("/path/to/socket"));
sourcepub fn compression(&self) -> Option<Compression>
pub fn compression(&self) -> Option<Compression>
If not None
, then client will ask for compression if server supports it
(defaults to None
).
Connection URL
You can use compression
URL parameter to set this value:
fast
- for compression level 1;best
- for compression level 9;on
,true
- for default compression level;0
, …,9
.
Note that compression level defined here will affect only outgoing packets.
sourcepub fn max_allowed_packet(&self) -> Option<usize>
pub fn max_allowed_packet(&self) -> Option<usize>
Client side max_allowed_packet
value (defaults to None
).
By default Conn
will query this value from the server. One can avoid this step
by explicitly specifying it. Server side default is 4MB.
Available in connection URL via max_allowed_packet
parameter.
sourcepub fn wait_timeout(&self) -> Option<usize>
pub fn wait_timeout(&self) -> Option<usize>
Client side wait_timeout
value (defaults to None
).
By default Conn
will query this value from the server. One can avoid this step
by explicitly specifying it. Server side default is 28800.
Available in connection URL via wait_timeout
parameter.
sourcepub fn secure_auth(&self) -> bool
pub fn secure_auth(&self) -> bool
Disables mysql_old_password
plugin (defaults to true
).
Available via secure_auth
connection url parameter.
Trait Implementations§
source§impl From<OptsBuilder> for Opts
impl From<OptsBuilder> for Opts
source§fn from(builder: OptsBuilder) -> Opts
fn from(builder: OptsBuilder) -> Opts
source§impl PartialEq for Opts
impl PartialEq for Opts
impl Eq for Opts
impl StructuralEq for Opts
impl StructuralPartialEq for Opts
Auto Trait Implementations§
impl !RefUnwindSafe for Opts
impl Send for Opts
impl Sync for Opts
impl Unpin for Opts
impl !UnwindSafe for Opts
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<T> FmtForward for T
impl<T> FmtForward for T
source§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.source§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where Self: Display,
self
to use its Display
implementation when
Debug
-formatted.source§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.source§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.source§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.source§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.source§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.source§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere Self: Sized,
source§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere R: 'a,
self
and passes that borrow into the pipe function. Read moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere Self: Borrow<B>, B: 'a + ?Sized, R: 'a,
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> Rwhere Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere Self: AsRef<U>, U: 'a + ?Sized, R: 'a,
self
, then passes self.as_ref()
into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere Self: AsMut<U>, U: 'a + ?Sized, R: 'a,
self
, then passes self.as_mut()
into the pipe
function.source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,
Deref::Target
of a value. Read moresource§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.source§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
.tap_borrow()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
.tap_ref()
only in debug builds, and is erased in release
builds.source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
.tap_ref_mut()
only in debug builds, and is erased in release
builds.