技术分享 | MySQL 主机该如何配置 fs.aio-max-nr

技术分享 | MySQL 主机该如何配置 fs.aio-max-nr,第1张

MySQL 默认是启用 innodb_use_native_aio,使用异步 IO 操作,MySQL 启动时所需 aio slot 若超过系统当前 fs.aio-max-nr 设置,则无法启动报错 InnoDB: io_setup() failed with EAGAIN after 5 attempts.

通常在单机单实例环境下很少会遇到超出 aio-max-nr 的问题,若部署单机多实例,会大概率遇到此问题。我们来分析下该如何配置 fs.aio-max-nr 参数。关于 aio-nr 与 aio-max-nr

使用 strace 观测 io_setup 调用情况,

总共:4709 个 = 18 * 256 + 101

其分配 256 event 的也就是 InnoDB IO 线程。

1.下载、解压程序包;

2.设置好存放目录(不要有中文);

3.在系统变量中添加path(mysql程序的bin目录);

4.以管理员身份运行cmd,初始化①无密码:mysqld --initialize-insecure 登陆时用mysql -u root即可

②有密码(初始密码在自动生成的data目录下.err文件中):mysqld --initialize 登陆时用mysql -u root -p

5.安装:mysqld --install

6.启动服务:net start mysql

7.登陆:mysql -u root(无密码),mysql -u root -p 回车输入密码

8.退出:exit;

9.停止服务:net stop mysql

10.移除服务:mysqld --remove

说明:如重新安装需要停止服务,移除服务,删除data目录

11.配置文件my.ini(用记事本创建,修改文件名即可):

```mysql

[mysqld]

#设置时区为东八区,此项设置后,在连接MySQL的时候可以不用每次都手动设置时区

default-time-zone = '+8:00'

#解决导入脚本是function报错

log_bin_trust_function_creators=1

# 设置3308端口

port=3308

# 允许最大连接数

max_connections=200

# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统

max_connect_errors=10

# 服务端使用的字符集默认为UTF8

character-set-server=utf8

# 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

# 默认使用“mysql_native_password”插件认证,此认证为1代加密认证。如果使用2代加密的话,使用可视化工具sqlyog会无法登陆!

default_authentication_plugin=mysql_native_password

[mysql]

# 设置mysql客户端默认字符集

default-character-set=utf8

[client]

# 设置mysql客户端连接服务端时默认使用的端口 mysql8bin>mysql 直接登录

# mysql -hlocalhost -uroot -P3308

port=3308

user=root

password= root

default-character-set=utf8

```

12.退出mysql,停止服务,将my.ini文件放到程序根目录(bin,data同级目录)

13.以管理员身份运行cmd,直接输入mysql,回车即可进入mysql

14.启动和停止mysql服务必须以管理员身份运行命令


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/269818.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存