首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL在~/.my.cnf中不读取用户特定的选项

问MySQL在~/.my.cnf中不读取用户特定的选项
EN

Database Administration用户
提问于 2018-03-12 09:57:48
回答 1查看 711关注 0票数 1

我希望服务器每次启动时都运行一个初始SQL查询:

代码语言:javascript
复制
[mysqld]
init-connect='SET NAMES utf8mb4'

我希望它只针对用户而不是全球用户。因此,我在用户的主目录( .my.cnf )中创建了一个~/.my.cnf,但是当我试图查看它是否影响了服务器时,它没有显示我添加的设置,而且服务器似乎忽略了我的设置:

代码语言:javascript
复制
    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。

代码语言:javascript
复制
character_set_client
character_set_results
character_set_connection

我还应该说,我使用Laravel作为我的开发环境。

EN

回答 1

Database Administration用户

发布于 2018-03-12 10:07:20

对于mysql客户端,要使用与默认设置不同的字符集,可以在每次启动时显式执行SET NAMES。

为了更容易地实现相同的结果,请将--default-character-set选项设置添加到mysql命令行或选项文件中。例如,以下选项文件设置在每次调用mysql时将三个与连接相关的字符集变量设置为koi8r:

代码语言:javascript
复制
[mysql]
default-character-set=koi8r  

如果您使用的是启用自动重新连接的mysql客户端(不建议这样做),则最好使用charset命令而不是SET NAMES。例如:

代码语言:javascript
复制
mysql> charset utf8

Charset changed

charset命令发出一条SET NAMES语句,并更改mysql在断开连接后重新连接时使用的默认字符集。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/199973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档