当前位置: 首页 > news >正文

linux系统mysql性能优化

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.serviceLimitNOFILE=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

 

http://www.dtcms.com/a/275818.html

相关文章:

  • 【Modern C++ Part9】Prefer-alias-declarations-to-typedefs
  • Opencv---深度学习开发
  • 云计算三大服务模式深度解析:IaaS、PaaS、SaaS
  • 【数据结构与算法】数据结构初阶:详解顺序表和链表(四)——单链表(下)
  • 【PTA数据结构 | C语言版】后缀表达式求值
  • Transforms
  • Spring(四) 关于AOP的源码解析与思考
  • 一文理解缓存的本质:分层架构、原理对比与实战精粹
  • 别再怕 JSON!5分钟带你轻松搞懂这个程序员的好帮手
  • 鸿蒙的NDK开发初级入门篇
  • RISC-V:开源芯浪潮下的技术突围与职业新赛道 (四) 产业应用全景扫描
  • (LeetCode 面试经典 150 题 ) 209. 长度最小的子数组(双指针)
  • Ntfs!LfsFlushLfcb函数分析之while的循环条件NextLbcb的确定和FirstLbcb->LbcbFlags的几种情况
  • docker-compose方式搭建lnmp环境——筑梦之路
  • 【android bluetooth 协议分析 07】【SDP详解 2】【SDP 初始化】
  • Operation Blackout 2025: Smoke Mirrors
  • Windows符号链接解决vscode和pycharm占用C盘空间太大的问题
  • NX二次开发——导入模型是常遇见的问题(导入模型原点的确定导入模型坐标的确定)
  • BERT:双向Transformer革命 | 重塑自然语言理解的预训练范式
  • 深入理解大语言模型:从核心技术到极简实现
  • 洛谷题解 | UVA1485 Permutation Counting
  • jenkins自动化部署前端vue+docker项目
  • 前端面试宝典---项目难点2-智能问答对话框采用虚拟列表动态渲染可视区域元素(10万+条数据)
  • 自动化运维工具jenkins问题
  • Ubuntu安装Jenkins
  • java堆的创建与基础代码解析(图文)
  • Classifier guidance与Classifier-free guidance的原理和公式推导
  • 深大计算机游戏开发实验三
  • 深度学习图像分类数据集—害虫识别分类
  • 分布式数据库系统模式结构深度解析