Mysql源碼方式安裝與完全卸載Mysql

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章