ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:22.53KB ,
资源ID:16202001      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-16202001.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(免编译版linux系统mysql安装配置优化手册V21.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

免编译版linux系统mysql安装配置优化手册V21.docx

1、免编译版linux系统mysql安装配置优化手册V21(免编译版)linux系统mysql安装配置优化手册V2.1Version: 2.1Author: reedTime: 2012-05-141. 适用的安装包1.1 mysql-5.1.48-linux-x86_64-glibc23.tar.gz(64位)1.2 安装mysql-5.1.48的32位版本请参考(编译版)linux系统mysql安装配置优化手册V2.01.3 mysql-5.0.41-linux-i686-glibc23.tar.gz(32位)注:本次安装的linux系统环境为64位(查看版本:#uname -m),则mysq

2、l也对应要64位。2. 建立mysql需要的用户和组2.1 #groupadd mysql2.2 #useradd g mysql mysql s /sbin/nologin(s /sbin/nologin参数为设置不允许mysql用户进行系统登录)3. 解压缩# cd /usr/local# tar -xzvf mysql-5.1.48-linux-x86_64-glibc23.tar.gz# ln -s /usr/local/mysql-5.1.48-linux-x86_64-glibc23 mysql4. 生成系统数据库#cd /usr/local/mysql# scripts/mysq

3、l_install_db -user=mysql5. 修改mysql目录权限# chown -R root /usr/local/mysql# chgrp -R mysql /usr/local/mysql# chown -R mysql /usr/local/mysql/data注:操作mysql数据库的用户是mysql 所以要拥有数据库目录的所有权6. 修改配置文件把配置文件复制到/etc下# cp /usr/local/mysql/support-files/my-f /etc/f注:如果你的内存64M,则复制my-f为/etc/f如果内存是128M,则复制my-f为/etc/f如果内存

4、是512M,则复制my-f为/etc/f如果内存是1-2G,则复制my-f为/etc/f如果内存是4G,则复制my-innodb-heavy-4G.cnf为/etc/f7. 设置mysql中文编码问题注:这一步在创建用户数据库之前完成,并要重启MYSQL#vi /etc/fclient#password = your_passwordport = 3306socket = /tmp/mysql.sock#添加的内容default-character-set=gb2312mysqldport = 3306socket = /tmp/mysql.sock#添加的内容default-characte

5、r-set=utf88. 设置Mysql执行程序的path环境变量#vi /etc/profile在最后处添加:PATH=$PATH:/usr/local/mysql/bin export PATH保存退出。#source /etc/profile9. 设置随系统开机启动9.1 启动mysql,如果一切正常的话,运行此命令后,不会有错误提示#/usr/local/mysql/bin/mysqld_safe -user=mysql &注:在Unix和NetWare中推荐使用mysqld_safe来启动mysqld服务器。mysqld_safe增加了一些安全特性,例如当出现错误时重启服务器并向错误

6、日志文件写入运行时间信息。9.2 将mysql.server这个文件copy到/etc/init.d/目录下,并更名为mysql#cp support-files/mysql.server /etc/init.d/mysql9.3 给/etc/init.d/mysql这个文件赋予“执行”权限#chmod 755 /etc/init.d/mysql9.4 加入到开机自动运行,运行级别为3 4 5#chkconfig -level 345 mysql on9.5 重启mysql服务#ps ef|grep mysql#kill -9 id#service mysql start注:如果这里启动失败报

7、错,类似这样的错误信息“Starting MySQL.Manager of pid-file quit without updating file.失败”,不要担心,先看下mysql的日志究竟报了什么错,#vi /usr/local/mysql/data/*.err(星号表示你主机的名字),错误的日志如下:InnoDB: Error: data file ./ibdata1 is of a different sizeInnoDB: 640 pages (rounded down to MB)InnoDB: than specified in the .cnf file 64000 pages

8、!InnoDB: Could not open or create data files.InnoDB: If you tried to add new data files, and it failed here,InnoDB: you should now edit innodb_data_file_path in f backInnoDB: to what it was, and remove the new ibdata files InnoDB createdInnoDB: in this failed attempt. InnoDB only wrote those files f

9、ull ofInnoDB: zeros, but did not yet use them in any way. But be careful: do notInnoDB: remove old data files which contain your precious data!120410 9:43:24 ERROR Plugin InnoDB init function returned error.120410 9:43:24 ERROR Plugin InnoDB registration as a STORAGE ENGINE failed.120410 9:43:24 ERR

10、OR Unknown/unsupported table type: InnoDB120410 9:43:24 ERROR Aborting从日志看到,文件ibdata1跟配置文件里面设置的值不一致,无法创建或打开该文件,如果你想新增一个datafile,同时又失败了,你应该把移除旧的datafile,然后重新启动mysql,这样就OK啦。10. 修改mysql超级用户root密码# mysqladmin -u root -p password 123456 (注:此处改密码为123456为例)Enter password: 回车就行 ,默认的密码为空11. 优化、安全设置#vi /etc/f

11、添加以下内容(注:所设置的某些参数要根据实际进行调整):default-storage-engine=InnoDBinnodb_file_per_tableinnodb_data_file_path=ibdata1:1000M;ibdata2:1000M;ibdata3:1000M;ibdata4:1000M;ibdata5:1000M:autoextendinnodb_log_file_size = 500Minnodb_log_files_in_group = 4innodb_log_buffer_size = 8Minnodb_flush_log_at_trx_commit = 2inn

12、odb_buffer_pool_size = 4Ginnodb_additional_mem_pool_size = 16Mmax_connections = 65535tmp_table_size = 200Mmax_heap_table_size = 256Mquery_cache_size= 64Mquery_cache_limit = 4Mwait_timeout = 300interactive_timeout = 300thread_cache_size = 64skip-external-lockingkey_buffer = 256Mmax_allowed_packet = 4

13、Mtable_cache = 512sort_buffer_size = 6Mnet_buffer_length = 8Kread_buffer_size = 4Mread_rnd_buffer_size = 1024Kmyisam_sort_buffer_size = 64M# Try number of CPUs*2 for thread_concurrencythread_concurrency = 4local-infile = 0#以下这些系统缺省配置,跟上面的配置有冲突,需要屏蔽:#key_buffer_size = 256M#max_allowed_packet = 1M#tab

14、le_open_cache = 256#sort_buffer_size = 1M#read_buffer_size = 1M#read_rnd_buffer_size = 4M#myisam_sort_buffer_size = 64M#thread_cache_size = 8#query_cache_size= 16M附注解:#缺省存储引擎default-storage-engine=InnoDB#使每个Innodb的表,有自已独立的表空间。如删除文件后可以回收那部分空间innodb_file_per_table#数据文件个数及最后一个文件自动扩充2G为限innodb_data_file

15、_path=ibdata1:1000M;ibdata2:1000M;ibdata3:1000M;ibdata4:1000M;ibdata5:1000M:autoextend#日志文件大小innodb_log_file_size = 500M#指定日志组的文件个数innodb_log_files_in_group = 4#事务在内存中的缓冲。这个参数设置 InnoDB 用来往磁盘上的日志文件写操作的缓冲区的大小。这有点像 Oracle 的 log_buffer ,通过内存缓冲来延缓磁盘 I/O 以提高访问的效率。 因为 MySQL 每秒都会将日志缓冲区的内容刷新到日志文件,因此无需设置超过 1

16、秒所需的内存空间。通常设置为 8 16MB 就足够了,默认值是 1MB。innodb_log_buffer_size = 8M#控制事务的提交方式。抱怨Innodb比MyISAM慢 100倍?那么你大概是忘了调整这个值。默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使用电 池供电缓存(Battery backed up cache)时。设成2对于很多运用,特别是从MyISAM表转过来的是可以的,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬 盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即

17、使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统 挂了时才可能丢数据。innodb_flush_log_at_trx_commit = 2#缓存innodb表的索引,数据,插入数据时的缓冲。官方的说明是# You can set ._buffer_pool_size up to 50 - 80 % of RAM but beware of setting memory usage too high。所以要根据本机实际的内存设定,这里只设置4G。(很有用)innodb_buffer_pool_size = 4G#用来存放Innodb的内部目录。这个参数用来设置 InnoDB 存储

18、的数据目录信息和其它内部数据结构的内存池大小。应用程序里的表越多,你需要在这里分配越多的内存。对于一个相对稳定的应用,这个参数的大小也是相对稳定的,也没有必要预留非常大的值。如果 InnoDB 用光了这个池内的内存, InnoDB 开始从操作系统分配内存,并且往 MySQL 错误日志写警告信息。默认值是 1MB ,当发现错误日志中已经有相关的警告信息时,就应该适当的增加该参数的大小。innodb_additional_mem_pool_size = 16M#最大连接数(很有用)max_connections = 65535#临时表大小。mysql 的配置文件中,tmp_table_size 的

19、默认大小是 32M。如果一张临时表超出该大小,MySQL产生一个 The table tbl_name is full 形式的错误,如果你做很多高级 GROUP BY 查询,增加 tmp_table_size 值。tmp_table_size = 200M#这个变量定义了用户可以创建的内存表(memory table)的大小。和tmp_table_size一起限制了内部内存表的大小。max_heap_table_size = 256M#查询结果缓存。第一次执行某条SELECT语句的时候,服务器记住该查询的文本内容和它返回的结果。服务器下一次碰到这个语句的时候,它不会再次执行该语句。作为代替,它

20、直接从查询缓存中的得到结果并把结果返回给客户端。query_cache_size= 64M#指定单个查询能够使用的缓冲区大小,缺省为1M。query_cache_limit = 4M#服务器在关闭连接之前在一个连接上等待行动的秒数,默认数值是28800,即如果没有事情发生,服务器在 8个小时后关闭连接。wait_timeout = 300#服务器在关闭连接前在一个交互连接上等待行动的秒数。一个交互的客户被定义为对mysql_real_connect()使用 CLIENT_INTERACTIVE 选项的客户,默认数值是28800。interactive_timeout = 300#每建立一个连接

21、,都需要一个线程来与之匹配。用来缓存空闲的线程,以至不被销毁,如果线程缓存中有空闲线程,这时候如果建立新连接,MYSQL就会很快的响应连接请求。通过比较 Connections 和 Threads_created 状态的变量,可以看到这个变量的作用。根据物理内存设置规则如下:1G设置为8,2G为16,3G为32,大于3G设置为64。thread_cache_size = 64#取消文件系统的外部锁。当外部锁定(external-locking)起作用时,每个进程若要访问数据表,则必须等待之前的进程完成操作并解除锁定。由于服务器访问数据表时经常需要等待解锁,因此在单服务器环境下external

22、locking会让MySQL性能下降。所以在很多Linux发行版的源中,MySQL配置文件中默认使用了skip-external-locking来避免external locking。skip-locking(注:以后用Mysql版本参数用skip-external-locking)#指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度。通过检查状态值Key_read_requests和Key_reads,可以知道 key_buffer_size设置是否合理。比例key_reads / key_read_requests应该尽可能的低,至少是1:100,1:1000更好(上述状态值可

23、以使用show status like key_reads获得)。key_buffer_size只对MyISAM表起作用。即使你不使用MyISAM表,但是内部的临时磁盘表是 MyISAM表,也要使用该值。可以使用检查状态值created_tmp_disk_tables得知详情。key_buffer = 256M#一个包的最大尺寸。消息缓冲区被初始化为net_buffer_length字节,但是可在需要时增加到max_allowed_packet个字节。缺 省地,该值太小必能捕捉大的(可能错误)包。如果你正在使用大的BLOB列,你必须增加该值。它应该象你想要使用的最大BLOB的那么大。如:通常通

24、过MySQL的load data local infile语句将一个文本文件中的内容导入到数据库中,这样速度会很快,但今天发现如果文本的大小超过1M时,出现异常:“Packets larger than max_allowed_packet are not allowed”。max_allowed_packet = 4M#指定表高速缓存的大小。每当MySQL访问一个表时,如果在表缓冲区中还有空间,该表就被打开并放入其中,这样可以更快地访问表内容。通过检查峰值时间的 状态值Open_tables和Opened_tables,可以决定是否需要增加table_cache的值。如果你发现open_ta

25、bles等于 table_cache,并且opened_tables在不断增长,那么你就需要增加table_cache的值了(上述状态值可以使用show status like Open_tables获得)。注意,不能盲目地把table_cache设置成很大的值。如果设置得太高,可能会造成文件描述符不足,从而造成性能 不稳定或者连接失败。table_cache = 512#每个线程排序所需的缓冲。sort_buffer_size = 6M#用于建立连接时的连接缓冲和结果缓冲。最小值是1K,最大值是1M。但有需要时,可以动态扩大到 max_allowed_packet的大小。貌似跟mysqldu

26、mp时有关。net_buffer_length = 8K#当一个查询不断地扫描某一个表,MySQL会为它分配一段内存缓冲区。read_buffer_size变量控制这一缓冲区的大小。如果你认为连续扫描进行得太慢,可以通过增加该变量值以及内存缓冲区大小提高其性能。read_buffer_size = 4M#加速排序操作后的读数据,提高读分类行的速度。如果正对远远大于可用内存的表执行GROUP BY或ORDER BY操作,应增加read_rnd_buffer_size的值以加速排序操作后面的行读取。仍然不明白这个选项的用处read_rnd_buffer_size = 1024K#用于REPAIR

27、TABLE。不明白这个选项的用处,XX上找到的设置方向也是五花八门,有128M、64M、32M等,折中选一个。myisam_sort_buffer_size = 64M# Try number of CPUs*2 for thread_concurrency。最大并发线程数,为CPU个数的2倍(根据实际情况设置)thread_concurrency = 4(查看本机CPU个数命令:#grep physical id /proc/cpuinfo | sort | uniq | wc -l)#禁止MySQL中用“LOAD DATA LOCAL INFILE”命令。这个命令会利用MySQL把本地文件

28、读到数据库中,然后用户就可以非法获取敏感信息了。网络上流传的一些攻击方法中就有用它的,它也是很多新发现的SQL Injection攻击利用的手段!local-infile = 012. mysql常用查看系统参数命令参考官方文档:13. mysql常用命令导出整个数据库结构和数据mysqldump -uroot -p123456 database dump.sql导出单个数据表结构和数据mysqldump -uroot -p123456 database tablename tablename.sql导出整个数据库结构(不包含数据,-d参数)mysqldump -d -uroot -p1234

29、56 database dump.sql导出单个数据表结构(不包含数据)mysqldump -d -uroot -p123456 database table dump.sql导出整个数据库数据(不包含结构,-t参数)mysqldump -t -uroot -p123456 database dump.sql导出部分表数据(忽略几张表,连同结构都会忽略,-ignore-table参数)mysqldump -uroot -p123456 -ignore-table=database.tablename -ignore-table=database.tablename -ignore-table=

30、database.tablename database database.sql以一行一行形式导出数据(-skip-extended-insert参数)mysqldump -uroot -p123456 -skip-extended-insert databae tablename dump.sql导出数据库(记录:file和position记录的位置就是slave从master端复制文件的起始位置,此参数一般用于同步,-master-data=1参数)mysqldump -uroot -p -master-data=1 database database.sql根据某个条件导出数据(-w参数

31、)mysqldump -uroot -p123456 database table -w条件语句(where后面的sql语句)dump.sql脚本自动执行source命令方法(-e参数)mysql(注意:是mysql,而不是mysqldump) -uroot -p123456 database -e source xxx.sql删除权限REVOKE privileges ON 数据库名.表名 FROM user_name 更改表字段alter table 表名 modify 字段 varchar(20);删除字段ALTER TABLE 表名 drop 字段;更新表update 表 set 字段 where 条件加主键alter table 表名 add PRIMARY KEY (字段

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2