1、系统最大打开文件描述符数
查看限制
ulimit -n
更改配置
第一步
sudo vim /etc/security/limits.conf
* soft nofile 1048576
* hard nofile 1048576
第二步
sudo vim /etc/sysctl.conf
fs.file-max = 1048576
第三步(重启系统)
sudo reboot
验证生效
ulimit -n
sudo sysctl fs.file-max
2、MySQL 最大打开文件描述符数
编辑 MySQL 系统服务的配置文件,更改 LimitNOFILE 的参数值
sudo vim /lib/systemd/system/mysql.service LimitNOFILE=1048576
重载系统服务的配置文件
sudo systemctl daemon-reload
重启 MySQL 服务
sudo systemctl restart mysql
验证生效,在输出结果中查看 Max open files 的显示值
sudo cat /proc/`pidof mysqld`/limits
3、常见问题
无法远程连接 MySQL
在默认情况下,MySQL 是不支持远程连接的,可以按照以下步骤实现远程连接。
第一步,配置 MySQL 支持远程连接
通过 sudo netstat -anp|grep 3306 命令查看 MySQL 占用的端口,可以得到以下信息
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 658/mysqld
编辑 MySQL 的配置文件,将 bind-address 的配置内容注释掉,然后重启 MySQL 服务
编辑配置文件
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 127.0.0.1
重启服务
sudo systemctl restart mysql
MySQL 服务重启后,再次执行 sudo netstat -anp|grep 3306 命令,可以得到以下信息
tcp6 0 0 :::3306 :::* LISTEN 658/mysqld
第二步,创建新的用户,并授权用户远程访问特定的数据库
CREATE USER 'clay'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON my_db.* TO 'clay'@'%';
FLUSH PRIVILEGES;
4、授权 Root 用户远程登录
若希望授权 root 用户远程访问所有数据库(慎重考虑),可以执行以下 MySQL 命令。
值得一提的是,考虑到数据库安全问题,不建议授予 root 远程登录的权限,这可以降低数据库被攻击的风险。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; FLUSH PRIVILEGES;
特别注意:按照上述步骤进行配置后,若 MySQL 依旧无法实现远程访问,那么请检查系统的防火墙是否开放了 3306
端口。
5、MySQL 配置文件的位置
MySQL 安装完成后,各个配置文件的位置如下:
PID 文件: /var/run/mysqld/mysqld.pid
配置文件: /etc/mysql/mysql.conf.d/mysqld.cnf
数据目录: /var/lib/mysql
日志文件: /var/log/mysql/error.log
服务启动脚本: /lib/systemd/system/mysql.service