一、发现一堆的用户名是unauthenticateduser的用户在连接,错误如下:
[Warning] IP address'202.105.127.122' could not be resolved: Name or service not known
[Warning] /usr/local/mysql/bin/mysqld: Forcing close of thread 313036 user: '100msh_creater'
解决办法:在my.cnf中修改,[mysqld] 行下添加
skip-name-resolve
skip-external-locking
二、报错:'proxies_priv' entry '@ root@python1.100msh.com' ignored in--skip-name-resolve mode
解决办法:我的my.cnf设置的是skip_name_resolve,
我用rpm包安装完mysql后,进入user表,只保留了一个root账户,并把host改成%了,其余的root账户都让我删除了。
可是我的mysql.err启动时候,提示
111018 12:43:37 [Warning] 'proxies_priv' entry '@root@localhost.localdomain' ignored in --skip-name-resolve mode.
已经都没root@localhost.localdomain' 这个账户了,怎么还会提示这个呢。
数据库装完后,数据是从备份恢复过来的吧。备份的数据库之前所在的主机名是localhost.localdomain,现在是不是改了。这样的话,把这条记录删了就行了。
如有问题,把root用户重设一下,再flush privileges一下应该就行了
三、mysql内存使用很小,CPU飙升,说明有表没有建索引
解决办法:
1、root账号登录mysql,查询当前数据库连接数,命令为:showprocesslist;发现有大量“SELECT partner_no,mac_no,partner_id,sc_pid,mac_addr FROM `t_machine_sc_config` WHERE partner_no='05'”在执行。
2、通过分析该SQL查询未走索引descSELECT partner_no,mac_no,partner_id,sc_pid,mac_addr FROM`t_machine_sc_config` WHERE partner_no='05';
3、根据查询条件,将partner_no建立索引字段
4、索引建完后,切换到用户登录模式后,通过观察cpu负载正常。
5.mysql 表卡住了,那么需要把mysql进程kill 掉,尽量不要重启,因为mysql在写表重启表会坏
6.配置优化说明
skip-name-resolve 禁止mysql对外部连接进行DNS解析,使用这一项可以消除mysql进行DNS解析的时间。
back--log=384 #back--log参数的值指出在mysql暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。如果系统在一个短时间内有很多连接,则需要增大该参数的值。
key_buffer_size=256M 指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。
read_buffer_size=4M 读查询操作所能使用的缓冲区大小
max_connect_errors =10000 加大允许最大的错误连接
wait_timeout =10 指定一个请求的最大连接时间。