注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

老狗的博客

尽管每一步都很微小,但我确认我在进步

 
 
 

日志

 
 
关于我
sky

认真生活,努力工作 热爱技术,关注DB,存储,分布式,中间层,java,c++,php

网易考拉推荐

安装mysql  

2012-07-12 08:30:14|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

mysql 源代码包 下载地址<传送门>:

安装mysql是一件简单的事情,但是有一些地方需要注意

1. configure

对于不同版本,configure的选项不太一样,就我常用的5.0.45和5.1.45举例来说

mysql5.0.45
./configure --prefix=/home/mydb/mysql5145  \
--with-charset=utf8 \     
--with-extra-charsets=gbk,gb2312,big5,latin1 \
--enable-local-infile \
--with-unix-socket-path=/home/mydb/mysql5145/mysql.sock \
--with-tcp-port=1888 \
--with-big-tables

如果编译mysql5.1.45的时候,请注意一定要加上with-plugins,默认没有innodb
./configure --prefix=/home/mydb/mysql5145  \
--with-charset=utf8 \
--with-extra-charsets=gbk,gb2312,big5,latin1 \
--enable-local-infile \
--with-unix-socket-path=/home/mydb/mysql5145/mysql.sock \
--with-tcp-port=1888 \
--with-plugins=innobase,innodb_plugin,heap,myisam \
--with-big-tables
千万要关闭debug模式,debug模式下mysql的效率会突降10几倍,这个是最近一个同学在测试的过程中遇到的问题,血的教训

如果只编译客户端,可以使用
--without-server

如果要获取更好的性能,最好采用静态编译
--with-client-ldflags=-all-static \
--with-mysqld-ldflags=-all-static

也要注意的是一些编译变量的设置
CXXFLAGS="-O3  -felide-constructors   -fno-strict-aliasing   -fno-exceptions -fno-rtti" 
CFLAGS="-O3 " \
CXX=gcc \


2. make

我见过有人输入命令make直接编译,很慢,没有充分使用多线程,建议

make -j4/make -j8

3. make install
注意configure的使用应该指定prefix, 安装的时候会在prefix目录中进行安装

4. 在base目录下面,创建/子目录
etc目录: my.cnf
tmp目录:存放临时文件
log目录: 存在slow log, general log ,binlog 等
var目录: 存放文件
etc目录:存放配置文件
cd /home/mysql/mysql && mkdir tmp && mkdir log && mkdir var && mkdir etc

5. 将配置文件拷贝到etc下面
注意修改好etc的配置

特别是注意basedir, 注意如果不指定默认是/usr/local, 这个时候如果你运行mysqld的时候会执行/usr/local/bin目录下面的mysqld
也要注意datadir,指定了数据目录
也要注意server-id, 在复制环境中不能重复

注意有些设置在不同版本之间是不一样的,比如说slow log,general log的配置等

6. 执行basedir/bin/mysql_install_db脚本
执行mysql_install_db是为了创建mysql和test两个数据库
注意应该在配置好了my.cnf后再执行这个脚本,执行的具体格式如下:

./mysql_install_db --defaults-file=../etc/my.cnf

7. 删除空账户以及修改root密码
可以登录root后,set password = password('123')语句格式进行修改
delete from mysql.user where user != 'root' or host != '127.0.0.1';
空账户经常会带来一些莫名其妙的登录境况,比如说不用密码也可以登录等,所以有必要进行删除

8. 如果要搭建复制环境,则需要给丛库授权
grant replication client,replication slave on *.* to 'repl'@'slave' idnetified by '123';
flush tables;
flush logs;
show master status;

9. 在丛库上执行
change master to master_host='xx',
master_port=3306,
master_log_file='xxx',
master_log_pos=98;

10. 在丛库上执行start slave;

11. 最后为应用授权
grant select on *.* to 'xxx'@'xxx' identified by '123';
grant insert, update, delete,select on *.* to 'xxx'@'xxx' idnetified by '123';

单机多实例的两种方式:
1. 可以多份binary程序,每套程序下有自己的配置
mysql1
etc
my.cnf
bin
log
tmp
mysql2
etc
my.cnf
bin
log
tmp
2. 可以一份binary程序,多份配置
mysql1
etc
my.cnf1
my.cnf2
bin
mysqld_safe
log
tmp
var
libexe
mysqld
mysql2
var
log
tmp

需要注意的是在运行的时候如
mysql_install_db --defaults-file=../etc/my.cnf1
mysqld_safe --defaults-file=../etc/my.cnf2
配置文件中指明 相关的数据目录,日志目录等信息


  评论这张
 
阅读(142)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018