每次我重启MySQL都有这个警告:
[警告]缓冲警告:更改限制:max_connections:214(请求800)
所以我必须改变max_connections变量:
set global max_connections = 800;
Run Code Online (Sandbox Code Playgroud)
但/etc/my.cf已max_connections设定:
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
max_connections = 800
Run Code Online (Sandbox Code Playgroud)
我还修改了mysqld.service:
# Start main service
ExecStart=/usr/bin/mysqld_safe --defaults-file=/etc/my.cnf
Run Code Online (Sandbox Code Playgroud)
我还更新了Centos的最大打开文件,从1024到2000:
ulimit -Sa | grep "open files"
open files (-n) 2000
Run Code Online (Sandbox Code Playgroud)
但问题仍然存在.
Mysql日志启动:
150924 13:15:04 mysqld_safe mysqld from pid file
/var/run/mysqld/mysqld.pid ended
150924 13:15:04 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
2015-09-24 13:15:04 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2015-09-24 13:15:04 0 [Note] /usr/sbin/mysqld (mysqld 5.6.25) starting as process 29997 ...
2015-09-24 13:15:04 29997 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)
2015-09-24 13:15:04 29997 [Warning] Buffered warning: Changed limits: max_connections: 214 (requested 800)
2015-09-24 13:15:04 29997 [Warning] Buffered warning: Changed limits: table_open_cache: 400 (requested 2000)
2015-09-24 13:15:04 29997 [Note] Plugin 'FEDERATED' is disabled.
2015-09-24 13:15:04 29997 [Note] InnoDB: Using atomics to ref count buffer pool pages
2015-09-24 13:15:04 29997 [Note] InnoDB: The InnoDB memory heap is disabled
2015-09-24 13:15:04 29997 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2015-09-24 13:15:04 29997 [Note] InnoDB: Memory barrier is not used
2015-09-24 13:15:04 29997 [Note] InnoDB: Compressed tables use zlib 1.2.3
2015-09-24 13:15:04 29997 [Note] InnoDB: Using Linux native AIO
2015-09-24 13:15:04 29997 [Note] InnoDB: Using CPU crc32 instructions
2015-09-24 13:15:04 29997 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2015-09-24 13:15:04 29997 [Note] InnoDB: Completed initialization of buffer pool
2015-09-24 13:15:04 29997 [Note] InnoDB: Highest supported file format is Barracuda.
2015-09-24 13:15:04 29997 [Note] InnoDB: 128 rollback segment(s) are active.
2015-09-24 13:15:04 29997 [Note] InnoDB: Waiting for purge to start
2015-09-24 13:15:04 29997 [Note] InnoDB: 5.6.25 started; log sequence number 24337684937
2015-09-24 13:15:04 29997 [Note] Server hostname (bind-address): '*'; port: 3306
2015-09-24 13:15:04 29997 [Note] IPv6 is available.
2015-09-24 13:15:04 29997 [Note] - '::' resolves to '::';
2015-09-24 13:15:04 29997 [Note] Server socket created on IP: '::'.
2015-09-24 13:15:04 29997 [Note] Event Scheduler: Loaded 0 events
2015-09-24 13:15:04 29997 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.6.25' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL)
Run Code Online (Sandbox Code Playgroud)
我尝试了所有Google解决方案,但结果总是一样的......
MySQL在CentOS Linux 7.1.1503版(Core)上运行.
谢谢!
MNB*_*MNB 20
刚刚花了一两个小时在使用MySQL 5.6.26的CentOS 7上遇到完全相同的问题,这是我的解决方案.除了提高最大打开文件(对于mysql用户),它看起来你已经完成了,你需要添加"LimitNOFILE = 65535"(或类似的取决于你想要设置的限制多高)到你的mysql.service定义文件.
所以我的完整解决方案如下
将这两行附加到/etc/security/limits.conf
mysql hard nofile 65535
mysql soft nofile 65535
Run Code Online (Sandbox Code Playgroud)
将此行附加到/usr/lib/systemd/system/mysqld.service(在[service]部分中)
LimitNOFILE=65535
Run Code Online (Sandbox Code Playgroud)
然后最后重新启动并检查那些错误消息是否已从您的mysql错误日志中消失.
编辑:感谢下面的@SieGeL 提醒我添加,如果您直接更新".service"文件,您的编辑将在升级时丢失.要在升级后保留编辑,请在/etc/systemd/system/mysqld.service.d中创建一个额外的conf文件来使用systemd覆盖.
小智 11
我不建议编辑原始systemd文件,因为它将在更新期间被覆盖.
要修改限制,请执行以下操作:
mkdir /etc/systemd/system/mysqld.service.d
Run Code Online (Sandbox Code Playgroud)
在该目录中,创建新文件limits.conf并将以下内容添加到该文件中:
[Service]
LimitNOFILE = 65535
Run Code Online (Sandbox Code Playgroud)
最后重新加载systemd:
systemctl daemon-reload
Run Code Online (Sandbox Code Playgroud)
并重新启动mysqld以启用更改:
systemctl restart mysqld
Run Code Online (Sandbox Code Playgroud)
现在使用以下查询验证更改是否成功:
mysql> show variables like '%file%';
Run Code Online (Sandbox Code Playgroud)
你应该找到这样的一行:
| open_files_limit | 65535
Run Code Online (Sandbox Code Playgroud)
就是这样,这样你的更改就能在MySQL更新中存活下来.
| 归档时间: |
|
| 查看次数: |
26576 次 |
| 最近记录: |