我希望服务器每次启动时都运行一个初始SQL查询:
[mysqld]
init-connect='SET NAMES utf8mb4'我希望它只针对用户而不是全球用户。因此,我在用户的主目录( .my.cnf )中创建了一个~/.my.cnf,但是当我试图查看它是否影响了服务器时,它没有显示我添加的设置,而且服务器似乎忽略了我的设置:
mysqld --print-defaults
------------------------------------
--user=mysql
--pid-file=/var/run/mysqld/mysqld.pid
--socket=/var/run/mysqld/mysqld.sock
--port=3306
--basedir=/usr
--datadir=/var/lib/mysql
--tmpdir=/tmp
--lc-messages-dir=/usr/share/mysql
--skip-external-locking
--bind-address=0.0.0.0 --
key_buffer_size=16M
--max_allowed_packet=16M
--thread_stack=192K
--thread_cache_size=8
--myisam-recover-options=BACKUP
--query_cache_limit=1M
--query_cache_size=16M
--log_error=/var/log/mysql/error.log
--expire_logs_days=10
--max_binlog_s
ize=100M
--default_password_lifetime=0这也是SHOW VARIABLES LIKE 'character_set_%';的结果:

我希望将这些参数设置为服务器启动时的'utf8mb4' wach。
character_set_client
character_set_results
character_set_connection我还应该说,我使用Laravel作为我的开发环境。
发布于 2018-03-12 10:07:20
对于mysql客户端,要使用与默认设置不同的字符集,可以在每次启动时显式执行SET NAMES。
为了更容易地实现相同的结果,请将--default-character-set选项设置添加到mysql命令行或选项文件中。例如,以下选项文件设置在每次调用mysql时将三个与连接相关的字符集变量设置为koi8r:
[mysql]
default-character-set=koi8r 如果您使用的是启用自动重新连接的mysql客户端(不建议这样做),则最好使用charset命令而不是SET NAMES。例如:
mysql> charset utf8
Charset changedcharset命令发出一条SET NAMES语句,并更改mysql在断开连接后重新连接时使用的默认字符集。
https://dba.stackexchange.com/questions/199973
复制相似问题