查看mysql最大连接数 进入到数据库: show variables like 'max_connections';
查看服务器响应的最大连接数 show global status like 'Max_used_connections';
解决办法: [root@controller ~]# vim /usr/lib/systemd/system/mariadb.service [Service] Type=notify User=mysql Group=mysql LimitNOFILE=65535 #添加 LimitNPROC=65535 #添加
重新加载系统服务
systemctl --system daemon-reload [root@controller ~]# systemctl daemon-reload [root@controller ~]# systemctl restart mariadb.service
进入到数据库: show variables like 'max_connections'; 再次查看结果:
MariaDB [(none)]> show variables like 'max_connections'; | |
---|---|
Variable_name | Value |
max_connections | 64725 |
1 row in set (0.00 sec)
MySQL无论如何都会保留一个用于管理员(Super)登录的连接,用户管理员连接数据库维护操作 所以始终max_connections 1
其实这个参数实际起作用的最大值(实际最大可连接数)为16384,即使超过这个数 也以16384为准。
修改mariadb配置文件
vim /etc/my.cnf.d/openstack.cnf
[mysqld] max_connections = 65535
修改系统打开数 ]# vim /etc/security/limits.conf
- soft nofile 65535
- hard nofile 65535
ulimit -SHn 65535
vim /etc/sysctl.conf
max open files
fs.file-max = 65535
sysctl -p
重启mariadb
systemctl restart mariadb
如下错误 2017-02-06 09:54:56.400 2213 ERROR nova.servicegroup.drivers.db OperationalError: (pymysql.err.OperationalError) (2006, "MySQL server has gone away (error(32, 'Broken pipe'))") 上面的报错意思就是指client和MySQL server之间的链接断开了。
因为重启mariadb,其他openstack服务工作不正常了,需要重启其他服务 systemctl restart openstack*