1 Linux下对每个用户有open file的限制,默认为1024,可以通过ulimit -a 进行查看
当用普通用户启动Mysql, 包括 mysqld或者mysqld_safe两种方式,都会受到该大小的限制,设置的max_connections等配置值会被自动调整
当用ROOT用户启动Mysql,指定--user选项同样可以保证不是ROOT用户运行Mysql,在用ROOT启动时候,不会受到该大小的限制,ROOT会在启动时
通过ulimit -n 命令进行open file的设置,在mysqld_safe脚本可以搜索到,mysqld启动方式同样也会实现相同功能
而open_file_limits参数会根据设置的max_connections , table_open_cache等值进行动态调整,经过测试发现该参数的配置值好像是不能生效,是通过
服务器根据其他参数动态调整得到的值
另外在网上可以查询到的修改/etc/security/limits.conf文件让open-file参数永久生效的方式是可行的,但是需要注意的是不同的linux操作系统支持的方式是不同的
例如对于RedHat或者CentOS,可能是可行的,没有经过测试,但是对于Ubuntu是缺少步骤的,还需要另外的两步来完成。
2 路径问题,my.cnf配置文件中关于basedir,datadir以及文件路径的配置都涉及到相对路径,而这个相对路径是针对shell的执行目录来说的,而不是my.cnf的存放路径
也就是用bin/mysqld 和 ./mysqld(在bin下) 两个不同的shell执行路径下执行的时候,配置文件中相关配置路径需要修改
经过测试,在修改路径的时候必须修改 basedir 和 datadir
根据shell的执行路径,对上述两个参数的路径进行层级的控制处理应该可以完成服务器的正常启动