天天看點

Linux平台使用源碼安裝MySQL 5.1到個人目錄簡易指南

1. 解壓源碼到個人目錄;

2. 執行如下指令進行configure,注意源碼預設情況下不支援innodb,必須使用--with-plugins手工指定(二進制包預設已經支援):

./configure --prefix=$home/local/mysql-5154 --with-extra-charsets=latin1,gbk,utf8 --with-plugins=partition,heap,innobase,myisam,myisammrg,csv

3. 執行如下指令編譯和安裝

make

make install

4. 如果mysql伺服器運作的使用者不是你的登入使用者,則需要建立使用者,并修改目錄權限

4.1 增加使用者組和使用者

groupadd yourgroup

useradd -g yourgroup yourname

4.2 修改安裝目錄的權限

chown -r yourname yourdir

chgrp -r yourname yourdir

5. 制定配置檔案,拷貝後面的配置樣例,然後按照如下方式修改:

5.1 将其中所有目錄相關的配置全部改為個人目錄,且要用絕對路徑,不能用$home.  例如data, log(注意二進制包解壓後預設并沒有log、tmp目錄,需要自己手工建立),為了提高性能,建議資料目錄和日志目錄分開到不同的盤不同的目錄,例如:

      datadir = /home1/liyh/mysql/data/

      log-error = /home/liyh/local/mysql/log/mysqld.err

      log-bin=/home/liyh/local/mysql/log/mysql-bin

      innodb_data_home_dir = /home1/liyh/mysql/data

5.2 修改[mysqld]下的port為你自己的端口;

5.3 修改[mysqld]下的user為你的使用者名,即第4步建立的使用者;

6. 按照如下方式進行初始化

進入安裝目錄下的bin目錄,執行如下語句,其中--defaults-file是你在第5步配置的的配置檔案,--user是你的使用者名,--basedir是你的安裝目錄,即第2步指令中的--prefix參數指定的目錄

./mysql_install_db  --defaults-file=/home/liyh/local/mysql-5154/my.cnf --user=liyh --basedir=/home/liyh/local/mysql-5154

7. 按照如下方式啟動

/home/liyh/local/mysql-5154/bin/mysqld_safe --defaults-file=/home/liyh/local/mysql-5154/my.cnf --basedir=/home/liyh/local/mysql-5154

&

【特别注意】為了提高innodb引擎的性能,記得一定要按照如下方式修改兩個參數,否則你的mysql insert和update慢得如蝸牛,但高性能同時也是有損失的,這樣配置會降低mysql的可靠性,某些場景下可能丢失資料,實際應用需要你自己評估是否要這樣配置:

sync_binlog=0    1代表每次執行一條insert/update/delete都同步一下磁盤,0代表由作業系統決定何時同步磁盤,大于0代表達到多少條後再同步磁盤,如果可靠性要求較低,建議設定為0或者100以上,預設為0

innodb_flush_log_at_trx_commit = 2   預設為1,意思是每次事務送出時都同步日志到磁盤,0代表每秒同步一次,事務送出時不同步,2代表隻将事務日志寫入緩存,每秒由系統同步磁盤;

==================配置樣例如下====================================

[client]

port            = 19816

socket          = /home/liyh/local/mysql/tmp/mysql.sock

default-character-set = utf8

[mysqld]

character-set-server = utf8

user    = liyh

skip-external-locking

datadir = /home1/liyh/mysql/data/

log-error = /home/liyh/local/mysql/log/mysqld.err

pid-file = /home/liyh/local/mysql/tmp/mysql.pid

#autocommit = off

#read-only

key_buffer_size = 64m

myisam_sort_buffer_size = 300m

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 = 8m

query_cache_limit=8m

query_cache_min_res_unit = 2k

tmp_table_size=64m

max_heap_table_size = 128m

open_files_limit=102400

thread_concurrency = 16

max_connections=3000

max_connect_errors=3000

back_log = 600

table_cache = 4096

thread_cache_size = 100

thread_stack = 192k

#transaction_isolation = read-committed

skip-name-resolve

####log variables

server-id       = 1

binlog_format=mixed

#log-slave-updates

log-bin=/home/liyh/local/mysql/log/mysql-bin

relay_log=/home/liyh/local/mysql/log/relay-bin

max_binlog_size = 500m

binlog_cache_size = 1m

max_binlog_cache_size = 64m

#binlog-ignore-db = mysql

replicate-ignore-db = mysql

expire-logs-days = 10

sync_binlog=100

slow_query_log=1

slow_query_log_file=/home/liyh/local/mysql/log/slowquery.log

long_query_time=1

general_log=off

general_log_file=/home/liyh/local/mysql/log/general.log

#relay_log_purge=off

# point the following paths to different dedicated disks

#tmpdir         = /tmp/

#log-update     = /path-to-dedicated-directory/hostname

#auto_increment_increment=1

#auto_increment_offset=1

####innodb variables

#skip-innodb

innodb_data_home_dir = /home1/liyh/mysql/data

innodb_data_file_path = ibdata1:2000m;ibdata2:100m:autoextend

innodb_log_group_home_dir = /home1/liyh/mysql/data

#innodb_log_arch_dir = /home/liyh/local/mysql/data/

innodb_buffer_pool_size = 2048m

innodb_additional_mem_pool_size = 64m

innodb_log_file_size = 200m

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 = 16

default-storage-engine=innodb

#innodb_max_dirty_pages_pct = 90

#innodb_lock_wait_timeout = 60

#innodb_file_per_table = 0

#interactive_timeout = 600

#wait_timeout = 900

[mysqldump]

quick

[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

繼續閱讀