559
人物
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
port = 19816
socket = /home/liyh/local/mysql/tmp/mysql.sock
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
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
最後更新:2017-04-02 06:52:12