
修改数据库配置文件/etc/my.cnf
character-set-server=utf8mb4
collation_server=utf8mb4_unicode_ci
重启MySQL(按照官方文档,这两个选项都是可以动态设置的,但是实际的经验是Server必须重启一下)
已有的表修改编码为utf8mb4
ALTER TABLE
tbl_name
CONVERT TO CHARACTER SET
charset_name;
使用下面这个语句只是修改了表的default编码
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4
客户端
jdbc的连接字符串不支持utf8mb4,这个 这种方式 来解决的,如果服务器端设置了character_set_server=utf8mb4,则客户端会自动将传过去的utf-8视作utf8mb4。
Connector/J did not support utf8mb4 for servers 5.5.2 and newer.
Connector/J now auto-detects servers configured with character_set_server=utf8mb4 or treats the Java encoding utf-8 passed using characterEncoding=... as utf8mb4 in the SET NAMES= calls it makes when establishing the connection. (Bug #54175)
其他的client端,比如php、python需要看下client是否支持,如果不能在连接字符串中指定的话,可以在获取连接之后,执行”set names utf8mb4″来解决这个问题;
因为utf8mb4是utf8的超集,理论上即使client修改字符集为utf8mb4,也会不会对已有的utf8编码读取产生任何问题。
The port 3306 is the default MySql port.The value is ignored if Unix socket is used.
Use this to connect to a server in a replicated server configuration without concern on which server to use.
Use SSL if the server supports it, but allow connection in all cases
This option is available from Connector/NET version 6.2.1
Always use SSL. Deny connection if server does not support SSL.
This option is available from Connector/NET version 6.2.1
This option is available from Connector/NET version 6.2.1
This option is available from Connector/NET version 6.2.1
This option is available from Connector/NET version 6.2.1
This option is available from Connector/NET version 5.2.2
Returns a MySqlDateTime object for invalid values and a System.DateTime object for valid values
Returns System.DateTime.MinValue valued System.DateTime object for invalid values and a System.DateTime object for valid values.
The use of auto enlist transactionscope (default behaviour) could cause trouble in medium trust environments.
Default behaviour is that parameters for stored routines (stored procedures) are checked against the server
Some permissions and value casting related errors reported fixed when using this connection option.
The default behaviour is to read tables mysql.proc/INFORMATION_SCHEMA.ROUTINES and try to map provided command parameter values to the called procedures parameters and type cast values accordingly.
This can be troublesome if permissions to the (aforementioned) sproc info tables are insufficient.
The driver will not automatically map the parameters so you must manually set parameter types and you must also make sure to add the parameters to the command object in the exact order as appeared in the procedure definition.
This option is available from Connector/NET version 5.0.4
Specifying DefaultTableCacheAge is optional, default value is 60 seconds.
This option is available from Connector/NET version 6.4
This option is available from Connector/NET version 5.2.6
From version 6.2 idle connections are removed from the pool, freeing resources on the client (sockets) and the server (sockets and threads). Do not manually keep (global) connections and open close. Keep connection object creation and disposal as tight as possible, this might be counterintuitive but pooling mechanisms will take care of caching well and your code will be cleaner.
This is the default behaviour.
Default values are 0 and 100.
Makes an additional round trip to the server when obtaining a connection from the pool and connection state will be reset.
This is useful in load balancing scenarios when available servers change you don't want 100 constant connections in the pool pointing to only one server.
Specified in seconds, the amount of time after connection object creation the connection will be destroyed. Destruction will only happen when connections are returned to pool.
A connection might be long lived in the pool, however the connections server settings are updated (SHOW VARIABLES command) each time returned to the pool. This makes the client use of the connection object up to date with the correct server settings. However this causes a round trip and to optimize pooling performance this behaviour can be turned off.
This option is available from Connector/NET version 6.3
This option is available from Connector/NET version 6.4.4
The Windows Native Authentication Plugin must be installed for this to work.
Number of seconds between each keep-alive package send.
This option is available from Connector/NET version 6.1.1
The default is 25, meaning that stored procedure meta data (such as input/output data types etc) for the latest 25 called procedures will be cached in client memory.
This option is available from Connector/NET version 5.0.2
This enables Visual Studio wizards that bracket symbols with [] to work with Connector/Net. This option incurs a performance hit, so should only be used if necessary.
This option is available from Connector/NET version 6.3.1
Use this one to specify a default command timeout for the connection. Please note that the property in the connection string does not supercede the individual command timeout property on an individual command object.
This option is available from Connector/NET version 5.1.4.
Use this one to specify the length in seconds to wait for a server connection before terminating the attempt and receive an error.
Use this one to instruct the provider to ignore any command prepare statements and prevent corruption issues with server side prepared statements.
The option was added in Connector/NET version 5.0.3 and Connector/NET version 1.0.9.
Use this one to specify which network protocol to use for the connection.
"socket" is the default value used if the key isn't specified. Value "tcp" is an equivalent for "socket".
Use "pipe" to use a named pipes connection, "unix" for a Unix socket connection and "memory" to use MySQL shared memory.
It's possible to explicit set the shared memory object name used for communication.
It's possible to explicit set the pipe name used for communication, if not set, 'mysql' is the default value.
It is the port value of -1 that tells the driver to use named pipes network protocol. This is available on Windows only. The value is ignored if Unix socket is used.
It's possible to explicit set the shared memory object name used for communication.
Use this one to specify which character set to use to encode queries sent to the server.
Note! Use lower case value utf8 and not upper case UTF8 as this will fail.
Note that resultsets still are returned in the character set of the data returned.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)