mysql动态修改配置参数分两种:
成都创新互联总部坐落于成都市区,致力网站建设服务有网站设计、成都网站制作、网络营销策划、网页设计、网站维护、公众号搭建、小程序设计、软件开发等为企业提供一整套的信息化建设解决方案。创造真正意义上的网站建设,为互联网品牌在互动行销领域创造价值而不懈努力!
会话session:只对当前会话产生影响,退出mysql后失效;
全局GLOBAL:对后面的连接都有效,不过在重启mysql后失效。
step:
用root账号登录mysql命令行;
查看参数配置情况:
show variables; #显示全部参数。
show variables like '%wait%'; #显示包含wait的参数。
show session varialbes; #显示会话参数
show global varialbes; #显示全局参数
set session wait_timeout=10; #当前会话生效。
set GLOBAL wait_timeout = 10; #全局生效。
如果想要永久修改参数,则同时在/etc/my.cnf配置文件修改。
我们知道redo log包括 buffer和log file的部分,这里的innodb_log_file_size是配置log file的大小的。
innodb_log_file_size这个选项是设置 redo 日志(重做日志)的大小。这个值的默认为5M,是远远不够的,在安装完mysql时需要尽快的修改这个值。如果对 Innodb 数据表有大量的写入操作,那么选择合适的 innodb_log_file_size 值对提升MySQL性能很重要。然而设置太大了,就会增加恢复的时间,因此在MySQL崩溃或者突然断电等情况会令MySQL服务器花很长时间来恢复。
由于事务日志相当于一个写缓冲,而小日志文件会很快的被写满,这时候就需要频繁地刷新到硬盘,速度就慢了。如果产生大量的写操作,MySQL可能就不能足够快地刷新数据,那么写性能将会降低。
大的日志文件,另一方面,在刷新操作发生之前给你足够的空间来使用。反过来允许InnoDB填充更多的页面。对于崩溃恢复 – 大的重做日志意味着在服务器启动前更多的数据需要读取,更多的更改需要重做,这就是为什么崩溃恢复慢了。
如果不配的后果:默认是5M,这是肯定不够的。
最后,让我们来谈谈如何找出重做日志的正确大小。
幸运的是,你不需要费力算出正确的大小,这里有一个经验法则:在服务器繁忙期间,检查重做日志的总大小是否够写入1-2小时。你如何知道InnoDB写入多少,使用下面方法可以统计60秒内地增量数据大小:
mysql show engine innodb status\G select sleep(60); show engine innodb status\G
Log sequence number 4631632062
...
Log sequence number 4803805448
mysql select (4803805448-4631632062) 60/1024/1024;
+--------------------------------------+
| (4803805448-4631632062) 60/1024/1024 |
+--------------------------------------+
| 9851.84017181 |
+--------------------------------------+
1 row in set (0.00 sec)
在这个60s的采样情况下,InnoDB每小时写入9.8GB数据。所以如果innodb_log_files_in_group没有更改(默认是2,是InnoDB重复日志的最小数字),然后设置innodb_log_file_size为10G,那么你实际上两个日志文件加起来有20GB,够你写两小时数据了。
更改innodb_log_file_size的难易程度和能设置多大取决于你现在使用的MySQL版本。特别地,如果你使用的是5.6之前的版本,你不能仅仅的更改变量,期望服务器会自动重启。
好了,下面是步骤:
1、在my.cnf更改innodb_log_file_size
2、停止mysql服务器
3、删除旧的日志,通过执行命令rm -f /var/lib/mysql/ib_logfile*
4、启动mysql服务器 – 应该需要比之前长点的时间,因为需要创建新的事务日志。最后,需要注意的是,有些mysql版本(比如5.6.2)限制了重做日志大小为4GB。所以在你设置innodb_log_file_size为2G或者更多时,请先检查一下MySQL的版本这方面的限制。
Mysql的配置参数可以在my.cnf里直接修改(linux下在/etc目录下),但这是永久的修改,如果只是想临时修改用下就是动态修改,当重启时还是用配置文件里的值。
步骤如图:
1、编辑MySQL(和PHP搭配之最佳组合)配置文件: windows环境中:%MySQL_installdir%\my.ini //一般在MySQL安装目录下有my.ini即MySQL的配置文件。 linux环境中:/etc/my.cnf 在[MySQLd]配置段添加如下一行: skip-grant-tables 保存退出编辑。 2、然后重启MySQL服务 windows环境中: net stop MySQL net start MySQL linux环境中: /etc/init.d/MySQLd restart 3、设置新的ROOT密码 然后再在命令行下执行: MySQL-uroot -p MySQL 直接回车无需密码即可进入数据库了。 现在我们执行如下语句把root密码更新为7758521: update user set password=PASSWORD("7758521") where user='root'; quit 退出MySQL。 4、还原配置文件并重启服务 然后修改MySQL配置文件把刚才添加的那一行删除。 再次重起MySQL服务,密码修改完毕。 用新密码7758521试一下吧,又能登入MySQL的感觉就是不一样吧?
采纳哦
采用set GLOBAL命令。如:set GLOBAL event_scheduler=1;
在Mysql的配置文件中对参数值进行修改,之后重启数据库服务即可。