`
ritcher
  • 浏览: 82295 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

CentOS下MySql 5.0.x的安装、优化及安全设置(二)

阅读更多

Mysql的优化设置

打开/etc/my.cnf文件,修改以下设置,如果没有,可手动添加。调整设置时,请量力而行,这与你的服务器的配置有关,特别是内存大小。以下设置比较适合于1G内存的服务器,但并不绝对。

#指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度。通过检查状态值Key_read_requests和Key_reads,可以知道key_buffer_size设置是否合理。比例key_reads / key_read_requests应该尽可能的低,至少是1:100,1:1000更好(上述状态值可以使用show status like 'key_reads'获得)。key_buffer_size只对MyISAM表起作用。即使你不使用MyISAM表,但是内部的临时磁盘表是MyISAM表,也要使用该值。可以使用检查状态值created_tmp_disk_tables得知详情。
key_buffer = 384M

#要求MySQL能有的连接数量。当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用,然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。只有如果期望在一个短时间内有很多连接,你需要增加它,换句话说,这值对到来的TCP/IP连接的侦听队列的大小。你的操作系统在这个队列大小上有它自己的限制。试图设定back_log高于你的操作系统的限制将是无效的。默认数值是50
back_log = 200

#一个包的最大尺寸。消息缓冲区被初始化为net_buffer_length字节,但是可在需要时增加到max_allowed_packet个字节。缺省地,该值太小必能捕捉大的(可能错误)包。如果你正在使用大的BLOB列,你必须增加该值。它应该象你想要使用的最大BLOB的那么大。
max_allowed_packet = 4M

#允许的同时客户的数量。增加该值增加 mysqld要求的文件描述符的数量。这个数字应该增加,否则,你将经常看到 Too many connections 错误。 默认数值是100
max_connections = 1024

#指定表高速缓存的大小。每当MySQL访问一个表时,如果在表缓冲区中还有空间,该表就被打开并放入其中,这样可以更快地访问表内容。通过检查峰值时间的状态值Open_tables和Opened_tables,可以决定是否需要增加table_cache的值。如果你发现open_tables等于table_cache,并且opened_tables在不断增长,那么你就需要增加table_cache的值了(上述状态值可以使用show status like 'Open_tables'获得)。注意,不能盲目地把table_cache设置成很大的值。如果设置得太高,可能会造成文件描述符不足,从而造成性能不稳定或者连接失败。
table_cache = 512

#每个线程排序所需的缓冲
sort_buffer_size = 4M

#当一个查询不断地扫描某一个表,MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。如果你认为连续扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能。
read_buffer_size = 4M

#加速排序操作后的读数据,提高读分类行的速度。如果正对远远大于可用内存的表执行GROUP BY或ORDER BY操作,应增加read_rnd_buffer_size的值以加速排序操作后面的行读取。仍然不明白这个选项的用处……
read_rnd_buffer_size = 8M

#用于REPAIR TABLE。不明白这个选项的用处,百度上找到的设置方向也是五花八门,有128M、64M、32M等,折中选一个。
myisam_sort_buffer_size = 64M

#可以复用的保存在中的线程的数量。如果有,新的线程从缓存中取得,当断开连接的时候如果有空间,客户的线置在缓存中。如果有很多新的线程,为了提高性能可以这个变量值。通过比较 Connections 和 Threads_created 状态的变量,可以看到这个变量的作用。
thread_cache_size = 128

#查询结果缓存。第一次执行某条SELECT语句的时候,服务器记住该查询的文本内容和它返回的结果。服务器下一次碰到这个语句的时候,它不会再次执行该语句。作为代替,它直接从查询缓存中的得到结果并把结果返回给客户端。
query_cache_size = 32M

#最大并发线程数,cpu数量*2
thread_concurrency = 2

#设置超时时间,能避免长连接
wait_timeout = 120

#关闭不需要的表类型,如果你需要,就不要加上这个
skip-innodb
skip-bdb

关于mysql的优化设置及检查,这篇文章很值得一看  http://tech.itdb.cn/n/200607/27/n20060727_30398.shtml
-----------------------------------------------------------------------------------------------
Mysql的安全设置

打开/etc/my.cnf文件,修改以下设置,如果没有,可手动添加。

#取消文件系统的外部锁
skip-locking

#不进行域名反解析,注意由此带来的权限/授权问题
skip-name-resolve

#禁止MySQL中用“LOAD DATA LOCAL INFILE”命令。这个命令会利用MySQL把本地文件读到数据库中,然后用户就可以非法获取敏感信息了。网络上流传的一些攻击方法中就有用它的,它也是很多新发现的SQL Injection攻击利用的手段!
local-infile = 0

#关闭远程连接,即3306端口。这是MySQL的默认监听端口。由于此处MySQL只服务于本地脚本,所以不需要远程连接。尽管MySQL内建的安全机制很严格,但监听一个TCP端口仍然是危险的行为,因为如果MySQL程序本身有问题,那么未授权的访问完全可以绕过MySQL的内建安全机制。(你必须确定,你是否真的不需要远程连接mysql)
skip-networking

修改完my.cnf后,还需要对mysql的用户名、帐号、及默认数据库进行调整
首先先登录mysql,在终端窗口输入  /home/mysql/bin/mysql -u root -p
然后会提示输入密码,输入正确密码后,会出现mysql>提示符。

输入以下命令:

mysql>use mysql;
mysql>update user set user="centos" where user="root";       (将mysql的root用户名修改成centos,防止root的密码被暴力破解)
mysql>select Host,User,Password,Select_priv,Grant_priv from user;
mysql>delete from user where user='';                  (删除user用户)
mysql>delete from user where password='';               
(删除user用户)
mysql>delete from user where host='';                     (删除user用户)
mysql>drop database test;             (删除默认的test数据库)
mysql>flush privileges;                (刷新mysql的缓存,让以上设置立即生效)
mysql>quit;

为了使以上优化和安全设置生效,请重启Mysql服务或Linux。

关于Mysql的安全设置,这篇文章很值得一看
http://www.unixren.com/linux/bencandy.php?fid=21&id=459

分享到:
评论

相关推荐

    linux下安装mysql5.0.docx

    在Linux环境下安装MySQL 5.0是一个相对简单但需要谨慎操作的过程,尤其对于初学者来说,了解每个步骤至关重要。以下是安装MySQL 5.0的详细步骤和相关知识点: 1. **RPM软件包**: - **RPM(Red Hat Package ...

    Linux CentOS-7 Zabbix5.0安装包

    在IT领域,Linux系统是广泛应用于服务器...以上就是关于"Linux CentOS-7 Zabbix5.0安装包"的核心内容,包括安装、配置和优化Zabbix监控系统的关键步骤。通过学习和实践,你将能够有效地管理和监控你的Linux服务器环境。

    Linux 下安装 Mysql5.0

    ### Linux下安装MySQL 5.0 #### 测试环境: - 操作系统:CentOS 5.2 - MySQL版本:5.0.67 #### 第一步:下载mysql-5.0.67.tar.gz 在进行安装之前,首先需要获取MySQL 5.0.67的源代码包。可以通过MySQL官方网站或...

    CentOS5.5MySql5.1.49的安装、优化及安全设置.pdf

    在本文中,我们将深入探讨如何在CentOS 5.5操作系统上安装、优化以及进行安全设置MySQL 5.1.49。MySQL是一种流行的关系型数据库管理系统,对于Java开发和其他计算机应用至关重要。以下是对安装过程的详细步骤和注意...

    Centos7部署安装zabbix5.0.docx

    Centos7 部署安装 Zabbix 5.0 本文档详细介绍了在 Centos7 中部署安装 Zabbix 5.0 的步骤,涵盖了准备工作、关闭防火墙和 SELINUX、安装 Zabbix 服务器和代理、安装数据库、配置 PHP 环境等方面的内容。 一、准备...

    Centos下安装mysql.doc

    ### CentOS 下安装 MySQL 的详细步骤 #### 一、下载 MySQL 和相关 Perl 包 在 CentOS 系统下安装 MySQL 首先需要下载相应的安装包。根据文档中的描述,建议下载 MySQL 5.0 版本,并确保所选版本与您的 CPU 架构和...

    L.A.M.P环境配置方法 for CentOS 5.0.doc

    ### L.A.M.P环境配置方法 for CentOS 5.0 #### 概述 本文档主要介绍了如何在CentOS 5.0操作系统上搭建L.A.M.P(Linux、Apache、MySQL、PHP)环境的过程与方法。L.A.M.P是一种常用的开源Web服务解决方案,广泛应用...

    zabbix5.0rpm包和sql文件.rar

    本文将详细介绍如何在CentOS7上使用提供的RPM包和SQL文件安装Zabbix 5.0,并将其与MySQL数据库集成。 首先,我们关注的是标题中的"zabbix5.0rpm包",这指的是用于在Linux系统上安装Zabbix 5.0的预编译软件包。RPM...

    CentOS5.5_MySql_5.1.49的安装、优化及安全设置

    ### CentOS 5.5 MySQL 5.1.49 的安装、优化及安全设置 #### 一、前言 在 Linux 系统中部署数据库服务器是很多应用的基础工作之一。对于 CentOS 5.5 系统,安装 MySQL 5.1.49 并进行必要的优化和安全设置是非常重要...

    centos5.Freeradius2.1mysql5.0成功安装配置笔记.pdf

    centos5.Freeradius2.1mysql5.0成功安装配置笔记.pdf

    centos_5.Freeradius2.1_mysql_5.0成功安装配置笔记

    在CentOS 5环境下成功安装、配置并集成FreeRADIUS 2.1与MySQL 5.0,不仅需要对各组件的功能有深刻的理解,还需要细致地遵循一系列配置步骤。通过上述过程,可以构建一个强大且可靠的网络认证与计费系统,适用于多种...

    deploy-zabbix5.0.zip

    本指南将针对“deploy-zabbix5.0.zip”压缩包中的内容,详细介绍如何部署和配置Zabbix 5.0,帮助读者掌握这一强大工具的使用。 首先,我们需要了解Zabbix 5.0的主要改进和新特性。这个版本带来了全新的Web界面,...

    centos7_zabbix5.0自动安装脚本2.zip

    这个"centos7_zabbix5.0自动安装脚本2.zip"文件正是为了解决这个问题,它包含了所有必要的步骤,帮助用户在满足特定条件下(如默认的yum源和可连接外网)顺利安装Zabbix 5.0。 首先,让我们深入了解Zabbix 5.0的...

    Zabbix5.0的Server&Agent的rpm包

    3. **安装Zabbix Server**:使用`rpm`命令安装Server包,如`rpm -ivh zabbix-server-5.0.x.y.z.rpm`,其中x.y.z代表具体版本号。 4. **配置数据库**:Zabbix Server通常与MySQL或PostgreSQL数据库配合使用。设置...

    Centos6.5安装hdp.docx

    【CentOS 6.5 安装HDP集群详解】 HDP(Hortonworks Data Platform)是一个基于Apache Hadoop的全面数据管理平台,提供了一系列的数据处理、分析和管理工具。在CentOS 6.5上安装HDP集群,需要遵循一系列的步骤。以下...

    CentOS 7 yum安装MySQL8.docx

    在 MySQL8 中,Navicat 无法连接到数据库的原因是 MySQL8.0 版本的加密方式和 MySQL5.0 的不一样。解决方法是更改加密方式,使用命令行进入 mysql 的 root 账户,输入 root 的密码,然后更改加密方式。 安装和配置 ...

    centos7安装自动化安装zabbix5.0 shell脚本

    采用当前abbix5.0的最新软件,进行自动化安装zabbix服务端的整个体系,包括mysql、nginx、本机agent,省去人工配置,只做了当前的基本配置,无优化参数。能够解决基>本的安装问题,可以在脚本中添加优化参数,显示...

    LNMP/Nginx 虚拟主机面板 AMH v5.0.zip

    13、改进兼容 Centos、Debian、Ubuntu 所有发行版本安装,包括最新的 Centos7 与 Debian7 系统。 14、面板增加浮动快捷操作导航。 15、面板增加https安全连接,同时可使用http与https访问面板使用。 16、模块增加...

Global site tag (gtag.js) - Google Analytics