ErrString : Out of resources when opening file './XXX_STATISTIC.MYD' (Errcode: 24)

以前也看到这个报错,一直没有解决,偶尔报的多了,重启mysqld就解决了。

 

今天又看了一下,每次报这个错的时候系统负载都很高,内存吃光这些都不是主要问题,关键在于可以打开的文件句柄数超过了my.cnf的--open-files-limit。

 

那么怎么解决了,无非就是在机器硬件许可的情况下加大这个值,注意,修改这个值是需要重启mysqld的,考虑到报错不多,生产服务器能不重启就不重启,所以先这么放着了,去优化一下其他地方,别的地方打开文件少了,自然就不会报错了。

 

 

ps:

ulimit -a可以看该用户单进程可以打开的文件数

[root@NEWDB ~]# less /proc/22126/fd/  #22126是mysqld的仅称号
Display all 8149 possibilities? (y or n)

可以看到mysqld当前打开了多少文件(包括网络连接)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在安卓开发中,可以通过Android系统提供的Fingerprint API和Face ID API来实现指纹支付和刷脸支付的功能。以下是实现指纹支付和刷脸支付的简要步骤: 1. 检查设备是否支持指纹支付或刷脸支付 ```java if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { FingerprintManager fingerprintManager = (FingerprintManager) getSystemService(Context.FINGERPRINT_SERVICE); if (!fingerprintManager.isHardwareDetected() || !fingerprintManager.hasEnrolledFingerprints()) { // 设备不支持指纹支付 return; } } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); if (!keyguardManager.isKeyguardSecure() || !keyguardManager.isDeviceSecure()) { // 设备不支持刷脸支付 return; } } ``` 2. 请求指纹或刷脸验证 ```java if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { FingerprintManager fingerprintManager = (FingerprintManager) getSystemService(Context.FINGERPRINT_SERVICE); if (fingerprintManager.isHardwareDetected() && fingerprintManager.hasEnrolledFingerprints()) { // 请求指纹验证 FingerprintManager.AuthenticationCallback authenticationCallback = new FingerprintManager.AuthenticationCallback() { @Override public void onAuthenticationSucceeded(FingerprintManager.AuthenticationResult result) { // 指纹验证成功 } @Override public void onAuthenticationError(int errorCode, CharSequence errString) { // 指纹验证错误 } @Override public void onAuthenticationFailed() { // 指纹验证失败 } }; CancellationSignal cancellationSignal = new CancellationSignal(); fingerprintManager.authenticate(null, cancellationSignal, 0, authenticationCallback, null); } } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); if (keyguardManager.isKeyguardSecure() && keyguardManager.isDeviceSecure()) { // 请求刷脸验证 BiometricPrompt biometricPrompt = new BiometricPrompt.Builder(this) .setTitle("Title") .setDescription("Description") .setNegativeButton("Cancel", this.getMainExecutor(), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { // 取消刷脸验证 } }) .build(); BiometricPrompt.AuthenticationCallback authenticationCallback = new BiometricPrompt.AuthenticationCallback() { @Override public void onAuthenticationSucceeded(BiometricPrompt.AuthenticationResult result) { // 刷脸验证成功 } @Override public void onAuthenticationError(int errorCode, CharSequence errString) { // 刷脸验证错误 } @Override public void onAuthenticationFailed() { // 刷脸验证失败 } }; biometricPrompt.authenticate(new CancellationSignal(), this.getMainExecutor(), authenticationCallback); } } ``` 需要注意的是,上述代码中的指纹验证和刷脸验证是互斥的,只能选择其中一个进行验证。同时,需要在AndroidManifest.xml文件中声明相应的权限和特性: ```xml <uses-permission android:name="android.permission.USE_BIOMETRIC" /> <uses-permission android:name="android.permission.USE_FINGERPRINT" /> <uses-feature android:name="android.hardware.fingerprint" android:required="false" /> <uses-feature android:name="android.hardware.camera" android:required="false" /> <uses-feature android:name="android.hardware.camera.front" android:required="false" /> <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" /> ``` 以上代码仅为实现指纹支付和刷脸支付的基本示例,具体实现方式可能会因设备、系统等因素而有所不同。另外,实现指纹支付和刷脸支付需要考虑安全性等方面的问题,开发过程中需要注意遵守相关规范和标准。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值