linux下mysql的简单配置及监控
来源:互联网 发布:麦多商城系统 源码 编辑:程序博客网 时间:2024/06/09 23:32
配置文件路径
mysql启动的时候便会按照一定的顺序寻找配置文件my.cnf,若找到便会加载my.cnf。那怎么知道当前mysql服务使用的my.cnf文件的路径呢?
可通过执行命令: mysql --help | grep my.cnf 或 mysqladmin --help | grep -A1 'Default options'
该命令输出mysql加载配置文件的次序 :/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
因此一般mysql的配置文件路径都是 /etc/my.cnf
配置文件内容
其实就算my.cnf是空的也没关系,因为所有参数在mysql中都有默认值。官方也提供了一系列硬件环境下的参考配置文件,其中的my-innodb-heavy-4G.cnf 是一个非常好的参考,上面的文档也很详细。
由于我不是DBA,想从开发的角度去理解mysql的底层机制,关于配置这里我觉得可以参考《高性能Mysql》中的第8章,还有《MySQL技术内幕 InnoDB存储引擎》中的第3章。看完这些资料我感觉大牛想表达的意思:
(1)绝大多数的默认值都是适用的,因此对于不太了解的参数,就不要配置。
(2)凡是配置路径或文件名的参数,都要明确配置。这是一种好习惯,也方便运维。
(3)对于设置数量的参数,比如内存,并不是越大越好。建议参考官方默认值,先设置比它高一点试试。
(4)配置参数是一个循循渐进的过程,要通过 配置-》监控-》配置-》监控 的过程来逐步改善。
以下是我开发环境的最精简配置参考(2G内存)
[mysqld]port= 3306socket= /var/lib/mysql/mysql.sockpid-file = /var/lib/mysql/mysql.pid datadir = /var/lib/mysql/default-storage-engine = InnoDBcharacter-set-server = utf8 collation-server = utf8_general_ci lower_case_table_names = 1 max_connections = 1000thread_cache_size = 20log-bin = mysql-binsync_binlog = 1binlog_format = ROWmax_binlog_size = 512M expire_logs_days = 5log-output=FILE log-error = /var/lib/mysql/error.log slow_query_loglong_query_time = 1slow_query_log_file = /var/lib/mysql/slow.log #MyISAMkey_buffer_size = 32M#INNODBinnodb_buffer_pool_size = 1Ginnodb_log_file_size = 512M[mysqldump]quickmax_allowed_packet = 16M[mysql]no-auto-rehash#safe-updates[mysqld_safe]open-files-limit = 8192
每次修改my.cnf后都需要重新启动mysql才能生效。要是启动过程报错,可以查看异常日志。通过日志不仅能看到错误原因,还可以看到比如某个参数不推荐使用了,如concurrent_thread。还有就是my.cnf中那些文件路径的参数,一定要保证该路径是存在,系统是不会为你自动生成的。
查看服务中的变量
当mysql服务正常启动后,便会加载配置文件中的参数,成为服务中的变量,变量分为只读的,和允许动态修改的。并且变量也是有作用域的,具体可参考mysql中的变量定义。 这里我们只关心global(全局)和session(会话)级别的。
可通过sql语句 show global variables 查看所有的全局变量,而 show variables 则显示这次连接中的会话变量。
另外它还支持like操作符,比如 show global variables like '%innodb%'
因此当我们修改了配置文件中的某个参数后重启mysql,便可通过这种方式来检查配置是否真的生效了。
Mysql简单监控
(1)借助于linux本身的top命令可以查看mysql当前占用的内存、cpu等情况。使用netstat -anpt | grep mysql 可以查看到mysql当前网络连接情况。
(2)使用sql语句 show global status 查看全局的状态参数。比如要得到Mysql当前的连接数,可通过语句:show global status like '%Threads_connected%'。
(4)如果想查看当前有哪些连接,连接详情,可通过命令 show full processlist
(3)使用可视化工具,比如官方mysql workbenchde中的Server菜单项就提供了一些监控,如Server Status。
0 0
- linux下mysql的简单配置及监控
- Linux下Mysql的配置及常用命令
- Linux下mysql简单配置
- Linux下源码安装mysql及mysql的简单用法
- linux 下简单监控
- Linux简单的流量监控及限制
- linux环境下MySQL的日志监控
- Linux环境下Mysql的安装及简单使用
- Centos7下Mysql 安装及简单配置
- Linux下MySQL的编译安装和简单配置
- Linux下Mysql数据库的配置安装和简单使用
- LINUX下MYSQL的启动及相关配置
- linux环境下mysql数据库的安装配置及使用
- 关于Linux下的mysql安装及配置学习笔记
- LINUX下MYSQL的启动及相关配置
- LINUX下MYSQL的启动及相关配置
- linux下tomcat服务器内存、端口及监控用户配置
- Linux 下简单监控进程
- 策略模式
- Intent应用详解
- cocos2dx 基础
- Java的列表排序问题
- Android数据库SQLite操作详解及LitePal用法详解(一)
- linux下mysql的简单配置及监控
- 【ios】关于UIImageView的一个坑
- 内网穿透&UDP打洞
- Hibernate的单向N-N关联(四)
- 关于线程的一些概念和关于线程返回值的简单示例代码
- Apple Pay 详细教程
- Swift实现UITableViewCell的翻转效果
- java基础 创建xml文件
- 树莓派入门(笔记本当显示屏)