Linux平台使用二进制包将MySQL 5.1安装到个人目录简易指

【安装】

-----------------------------如下安装的用户为wiki,请根据需要修改为你自己的用户名------------------------------------

1. 从如下地址下载二进制包,注意机器是32位还是64位的:http://downloads.mysql.com/archives/community/ 

注意选择平台和版本

注意选如下包:

2. 解压二进制包到个人目录,例如/home/wiki/local/mysql-5.1.55


3. 拷贝本文的my.cnf样例到/home/wiki/local/mysql-5.1.55/目录下,然后按照如下方式修改:

     3.1 将其中所有目录相关的配置全部改为个人目录,且要用绝对路径,不能用$HOME.  

     注意:二进制包解压后缺省并没有log、tmp目录,需要自己手工创建


     3.2 修改[mysqld]下的port为你自己的端口;
     3.3 修改[mysqld]下的user为你的用户名;

4. 将mysql的目录权限修改为你的用户,例如:
    chgrp -R wiki mysql-5.1.55;
    chown -R wiki  mysql-5.1.55;
    chmod 775 mysql-5.1.55;

4.  到mysql-5.1.55目录下的scripts目录,执行如下语句:
   ./mysql_install_db --defaults-file=/home/wiki/local/mysql-5.1.55/my.cnf --user=wiki --basedir=/home/wiki/local/mysql-5.1.55
5. 执行如下语句启动:

   /home/wiki/local/mysql-5.1.55/bin/mysqld_safe --defaults-file=/home/wiki/local/mysql-5.1.55/my.cnf --basedir=/home/wiki/local/mysql-5.1.55 --ledir=/home/wiki/local/mysql-5.1.55/bin &


配置

为了提高InnoDB引擎的性能,记得一定要按照如下方式修改两个参数,否则你的MySQL insert和update慢得如蜗牛,但高性能同时也是有损失的,这样配置会降低MySQL的可靠性,某些场景下可能丢失数据,实际应用需要你自己评估是否要这样配置:
1)sync_binlog=0

1代表每次执行一条insert/update/delete都同步一下磁盘,0代表由操作系统决定何时同步磁盘,大于0代表达到多少条后再同步磁盘,如果可靠性要求较低,建议设置为0或者100以上
2)innodb_flush_log_at_trx_commit = 2 

默认为1,意思是每次事务提交时都同步日志到磁盘,0代表每秒同步一次,事务提交时不同步,2代表只将事务日志写入缓存,每秒由系统同步磁盘;


【FAQ】

1. Warning: World-writable config file '/home/wiki/local/mysql-5.1.55/my.cnf' is ignored

解决方法:chmod 644 /home/wiki/local/mysql-5.1.55/my.cnf

2. 用root用户到/home/wiki/local/mysql-5.1.55目录下启动失败

解决方法:使用wiki用户登录后启动


【配置和脚本】

1. 配置样例

[client]
port = 3309 
socket = /home/wiki/local/mysql-5.1.55/tmp/mysql.sock
default-character-set = utf8


[mysqld]
character-set-server = utf8
port = 3309
socket = /home/wiki/local/mysql-5.1.55/tmp/mysql.sock
user = wiki
skip-external-locking
datadir = /home/wiki/local/mysql-5.1.55/data/
log-error = /home/wiki/local/mysql-5.1.55/log/mysqld.err
pid-file = /home/wiki/local/mysql-5.1.55/bin/mysql.pid


key_buffer_size = 64M
myisam_sort_buffer_size = 30M
max_allowed_packet = 16M
table_open_cache = 4096
sort_buffer_size = 5M
join_buffer_size = 5M
read_buffer_size = 5M
read_rnd_buffer_size = 8M
bulk_insert_buffer_size = 64M
query_cache_size = 0 
query_cache_limit=1M
query_cache_min_res_unit = 2k
tmp_table_size=64M
max_heap_table_size = 128M


open_files_limit=1024
thread_concurrency = 16
max_connections=3000
max_connect_errors=3000
back_log = 600
table_cache = 4096
thread_cache_size = 100
thread_stack = 192K


skip-name-resolve


####log variables
server-id = 1
binlog_format=mixed
#log-slave-updates
log-bin=/home/wiki/local/mysql-5.1.55/log/mysql-bin
relay-log=/home/wiki/local/mysql-5.1.55/log/relay-bin
max_binlog_size = 100M
binlog_cache_size = 8M
max_binlog_cache_size = 640M
#binlog-ignore-db = mysql
replicate-ignore-db = mysql
expire-logs-days = 10
sync_binlog=100


##############slave config####################
#report-host=192.168.3.172
#report-port=19817
#report-user=rep
#report-password=rep


##############slave config####################


slow_query_log=1
slow_query_log_file=/home/wiki/local/mysql-5.1.55/log/slowquery.log
long_query_time=1
general_log=0
general_log_file=/home/wiki/local/mysql-5.1.55/log/general.log
#relay_log_purge=OFF


# Point the following paths to different dedicated disks
tmpdir = /home/wiki/local/mysql-5.1.55/tmp/
#log-update = /path-to-dedicated-directory/hostname


#auto_increment_increment=1s
#auto_increment_offset=asdafs


####innodb variables
#skip-innodb
innodb_data_home_dir = /home/wiki/local/mysql-5.1.55/data
innodb_data_file_path = ibdata:1000M:autoextend
innodb_log_group_home_dir = /home/wiki/local/mysql-5.1.55/log
#innodb_log_arch_dir = /home/wiki/local/mysql-5.1.55/data/
innodb_buffer_pool_size = 2048M 
innodb_additional_mem_pool_size = 64M
innodb_log_file_size = 100M 
innodb_log_buffer_size = 128M
#innodb_log_buffer_size = 8M
innodb_log_files_in_group = 3
innodb_flush_log_at_trx_commit = 2
#innodb_file_io_threads = 4
innodb_thread_concurrency = 40 
default-storage-engine=innodb
#innodb_max_dirty_pages_pct = 50 
#innodb_lock_wait_timeout = 60
innodb_file_per_table = 1


interactive_timeout = 60
wait_timeout = 28800


[mysqldump]
quick
max_allowed_packet = 16M


[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates


[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 512M
read_buffer = 5M
write_buffer = 5M


[mysqlhotcopy]
interactive-timeout


2. 启动mysql的脚本

#!/bin/sh

MYSQL_HOME=/home/wiki/local/mysql-5.1.55
cd $MYSQL_HOME
$MYSQL_HOME/bin/mysqld_safe --defaults-file=$MYSQL_HOME/my.cnf --basedir=$MYSQL_HOME &

3. 关闭mysql的脚本

#!/bin/sh

/home/wiki/local/mysql-5.1.55/bin/mysqladmin -S /home/wiki/local/mysql-5.1.55/tmp/mysql.sock -u root -p你的密码 shutdown



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值