1、基礎環境介紹
1.1軟件環境
操作系統:redhat linux 6.3
Mysql版本:Mysql 5.6.24
1.2磁盤目錄規劃
序號 |
目錄 |
用途 |
1 |
/opt/mysql/mysql-5.6.24 |
mysql主程序安裝目錄 |
2 |
/data/mysql/mysql_5624/{data,tmp,logs} |
存放數據文件、臨時文件、日誌文件,5624代表爲5.6.24版本號 |
2、linux環境調整優化
2.1 關閉NUMA
編輯/etc/grub.conf文件,在kernel後面增加 numa=offelevator=deadline
2.2 關閉selinux
編輯/etc/selinux/config文件,在最後面增加SELINUX=disabled
2.3 修改unlimit參數
編輯/etc/security/limits.conf文件,增加下面四行信息:
root soft nofile 65535 root hard nofile 65535
root soft nproc 7000 root hard nproc 7000 |
2.4 關閉iptables
#service iptables stop
#/etc/init.d/iptables stop
#chkconfig iptables off
2.5 修改環境變量
#Vi .bash_profile
增加下面內容:
export PATH=/usr/local/mysql/bin:/opt/mysql/mysql-5.6.24/bin:$HOME/bin:$PATH |
#source .bash_profile
由於修改的內容較多,建議到此步時,重啓一次linux,並驗證參數等配置是否生效。
3、安裝mysql
3.1 創建安裝與存放數據文件等文件目錄
#mkdir –p /opt/mysql/mysql-5.6.24
#mkdir –p /data/mysql/mysql_5624/{data,tmp,logs}
3.2創建Mysql用戶與用戶組
# groupadd mysql
# useradd -g mysql -s /sbin/nologin -d/opt/mysql mysql
3.3需要安裝mysql的DBD模塊包
DBD模塊包名爲:perl-DBD-MySQL-3.0007-2.el5.x86_64.rpm
#yum install cmake *gcc* libaio libaio-devel automake autoconf bzbison libtool ncurses
#yum install perl-DBD-MySQL
關於yum的配置,請參考作者發佈在博客中的《oracle_linux_6_64(bit)上安裝oracle11gR2數據庫環境快速準備神器oracle-rdbms-server-11gR2-preinstall》中的第3章節:“爲使用oracle-rdbms-server-11gR2-preinstall而搭建一個本地yum服務器”,博文網址:http://blog.csdn.net/ljunjie82/article/details/37373595 |
3.4 下載源碼安裝包
下載地址:
http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.24-linux-glibc2.5-x86_64.tar.gz
3.5 上傳壓縮文件至服務器
將下載到的mysql-5.6.24-linux-glibc2.5-x86_64.tar.gz源碼安裝文件上傳到服務器的/opt/mysql/目錄下(方法略)
3.6 解壓mysql的安裝包
#tar -xzvf /opt/mysql/mysql-5.6.24-linux-glibc2.5-x86_64.tar.gz -C/opt/mysql/mysql-5.6.24/
3.7 剪切解壓縮後的文件至規劃的安裝目錄
#cd /opt/mysql/mysql-5.6.24
#mv mysql-5.6.24-linux-glibc2.5-x86_64/* .
#rm –rf mysql-5.6.24-linux-glibc2.5-x86_64
3.8 創建ln軟鏈接
創建軟鏈接的目的:爲了在服務器上存有多個mysql版本時,可以使用軟鏈接靈活的指向想要使用的版本,在升級時最爲有用。
#ln -s /opt/mysql/mysql-5.6.24 /usr/local/mysql
3.9 更改目錄權限
#chown -R mysql:mysql /usr/local/mysql
#chown -R mysql:mysql /data/mysql
#chown -R mysql:mysql /opt/mysql
3.10 查看依賴的lib庫是否安全
#ldd /usr/local/mysql/bin/mysqld
4、配置my.cnf參數與數據庫初始化
4.1 配置my.cnf參數
(1)備份/etc/my.cnf
#mv /etc/my.cnf /etc/my.cnf_backup
(2)創建新的/etc/my.cnf文件
#vi /etc/my.cnf
[client] port = 3306 socket = /tmp/mysql.sock
[mysql] prompt=[master]> #pager="less -i -n -S" tee=/data/mysql/mysql_5624/data/query.log no-auto-rehash
[mysqld_multi] mysqld = /usr/local/mysql/bin/mysqld_safe mysqladmin = /usr/local/mysql/bin/mysqladmin log = /opt/mysql/mysqld_multi.log
[mysqld] #misc explicit_defaults_for_timestamp = ture user = mysql basedir = /usr/local/mysql datadir = /data/mysql/mysql_5624/data port = 3306 socket = /tmp/mysql.sock event_scheduler = 0
#timeout interactive_timeout = 300 wait_timeout = 300
#character set character-set-server = utf8
open_files_limit = 65535 max_connections = 100 max_connect_errors = 100000 skip-name-resolve = 1 #logs log-output=file slow_query_log = 1 slow_query_log_file = slow.log log-error = /data/mysql/mysql_5624/data/error.log log_warnings = 2 pid-file = mysql.pid long_query_time = 1 #log-slow-admin-statements = 1 #log-queries-not-using-indexes = 1 log-slow-slave-statements = 1
#binlog binlog_format = mixed server-id = 2003306 log-bin = /data/mysql/mysql_5624/logs/mybinlog binlog_cache_size = 4M max_binlog_size = 1G max_binlog_cache_size = 2G sync_binlog = 0 expire_logs_days = 10
#relay log skip_slave_start = 1 max_relay_log_size = 1G relay_log_purge = 1 relay_log_recovery = 1 log_slave_updates #slave-skip-errors=1032,1053,1062
#buffers & cache table_open_cache = 2048 table_definition_cache = 2048 table_open_cache = 2048 max_heap_table_size = 96M sort_buffer_size = 2M join_buffer_size = 2M thread_cache_size = 256 query_cache_size = 0 query_cache_type = 0 query_cache_limit = 256K query_cache_min_res_unit = 512 thread_stack = 192K tmp_table_size = 96M key_buffer_size = 8M read_buffer_size = 2M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 32M
#myisam myisam_sort_buffer_size = 128M myisam_max_sort_file_size = 10G myisam_repair_threads = 1
#innodb innodb_buffer_pool_size = 100M innodb_buffer_pool_instances = 1 innodb_data_file_path = ibdata1:1G:autoextend innodb_flush_log_at_trx_commit = 1 innodb_log_buffer_size = 64M innodb_log_file_size = 256M innodb_log_files_in_group = 3 innodb_max_dirty_pages_pct = 50 innodb_file_per_table = 1 innodb_rollback_on_timeout innodb_status_file = 1 innodb_io_capacity = 2000 transaction_isolation = READ-COMMITTED innodb_flush_method = O_DIRECT
#端口號爲3306的實例特殊配置 [mysqld3306] port = 3306 #指定本實例相應版本的basedir和datadir basedir= /usr/local/mysql datadir = /data/mysql/mysql_5624/data socket = /tmp/mysql_5624.sock #重新配置這幾個選項,不與全局配置一樣,會直接覆蓋上面的全局設置 innodb_buffer_pool_size = 100m transaction_isolation = REPEATABLE-READ
######以下爲多個版本mysql時的相關備用參數##### #[mysqldXXXX] #port=3308 #basedir= /usr/local/mysql #datadir= /data/mysql/mysql_XXXX/data #socket= /tmp/mysql_XXXX.sock #重新配置這幾個選項,不與全局配置一樣,會直接覆蓋上面的全局設置 #innodb_buffer_pool_size = 100m #innodb_flush_log_at_trx_commit = 2 #sync_binlog = 0 |
4.2 初始化mysql
特別注意:初始化數據庫一定要在basedir目錄下進行
#cd /usr/local/mysql
#./scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf
#./scripts/mysql_install_db --datadir=/data/mysql/mysql_5624/data --defaults-file=/etc/my.cnf
5、啓動與關閉mysql
5.1 啓動mysql
(1)mysql
#/etc/init.d/mysql start
Starting MySQL... SUCCESS! |
(2)驗證mysql是否在運行
#ps axu |grep mysqld
root 3329 0.1 0.0 106272 1412 pts/0 S 08:27 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql/mysql_5624/data --pid-file=/data/mysql/mysql_5624/data/mysql.pid mysql 4267 3.6 29.6 1121464 565388 pts/0 Sl 08:27 0:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/mysql_5624/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/mysql_5624/data/error.log --open-files-limit=65535 --pid-file=/data/mysql/mysql_5624/data/mysql.pid --socket=/tmp/mysql.sock --port=3306 |
(3)驗證配置的3306端口是否被監聽
#netstat -nalp|grep "3306"
tcp 0 0 :::3306 :::* LISTEN 4267/mysqld |
5.2 關閉mysql
#mysqladmin -uroot shutdown
6、完全卸載Mysql
(1)查詢已經安裝了的mysql包
#rpm –qa|grep mysql
(2)使用yum完全卸載
# yum remove mysql mysql-server mysql-libsmysql-connector
(3)手工刪除所創建的目錄及my.cnf文件
#rm –rf /opt/mysql
#rm –rf /data/mysql
#rm /etc/my.cnf
(4)手工刪除所創建的軟鏈接
#cd /usr/local
#rm mysql
本文作者:黎俊傑(網名:踩點),從事”系統架構、操作系統、存儲設備、數據庫、中間件、應用程序“六個層面系統性的性能優化工作
歡迎加入 系統性能優化專業羣,共同探討性能優化技術。羣號:258187244