MySql 配置参数详解

一、skip-name-resolve

参数用途:

参数的目的是不在进行反解析(ip不在反解析成域名),这样可以加快数据库反应时间。可就是说开启后,mysql的user 表中的HOST字段只能是IP地址,否则会报一下错误

171120 11:44:22 [Warning] 'user' entry 'root@dbtest-master' ignored in --skip-name-resolve mode.
171120 11:44:22 [Warning] 'user' entry '@dbtest-master' ignored in --skip-name-resolve mode.

原因分析:
“--skip-name-resolve mode”是禁用dns解析,避免网络DNS解析服务引发访问MYSQL的错误,一般应当启用
启用“--skip-name-resolve mode”后,在MySQL的授权表中就不能使用主机名了,只能使用IP ,出现此警告是由于mysql 表中已经存在有 localhost.localdomain 帐号信息。

解决方法:
把Warning提醒中的的账号删除重启mysql,就解决了。

二、mysql 报错:

/usr/sbin/mysqld: Forcing close of thread 491  user: 'asstartuser'

原因分析:

这个错误常发生在对数据库进行进行大量操作时,如果msyql 没有开启 skip-name-resolve 配置,由于mysql需要对DNS做反查,连续速度过慢,大量的查询处理不及时,线程不能得到释放,造成mysql “假死”。

解决方法:

修改mysql的配置文件(my.ini)在[mysqld]下添加:

skip-locking    # 在 Mysql 5.5中 移除了该参数,替换为 skip-external-locking
skip-name-resolve

三、skip-locking / skip-external-locking 

参数详解:

在mysql 配置文件中,默认存在 skip-locking 或者 skip-external-locking 参数,即“跳过外部锁定”。官方解释:External-locking用于多进程条件下为MyISAM数据表进行锁定。什么意思呢? 也就是说,外部锁定(external-locking)起作用时,每个进程若要访问数据表,就必须等待之前的进程完成操作并解除锁定。由于服务器访问数据表时需要等待上一次进程结束并解锁,所以在单个服务器环境下external locking会让Mysql性能下降。所以在很多Linux发行的版本中,Mysql 配置文件中默认使用了 skip-external-locking来避免external locking

简而言之:

如果是多服务器环境,希望打开external locking特征,则注释掉这一行即可

# skip-external-locking

如果是单服务器环境,则将其禁用即可,使用如下语句(不加注释):

skip-external-locking


未经允许请勿转载:熊先生个人博客 » MySql 配置参数详解

赞一个 (2)

评论 沙了个发

换个身份

取消评论

分享:

支付宝

微信