Linux下64位MySQL安裝部署過程

 innodb的innodb_buffer_pool_size 在32機器上只能最大爲2G,這樣本來增加內存爲了提高速度,受這個限制發揮不出來。聽說想到64位的環境可以用超過2G的內存,於是就開始重新部署。

環境:

Centos 5.3 64位

Mysql 5.1.33

安裝

Centos安裝沒有什麼特別,只是要記得下載64的系統,

 

 

MYSQL編譯安裝,對於安裝過的人,也是很簡單,這裏還是把某些過程寫一下,以供參考。 

安裝完Centos後,就按以下步驟操作:

1.換CentOS的yum源

cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.bak
wget http://blog.s135.com/soft/linux/centos/5.2/CentOS-Base.repo
2.定時校正服務器時鐘

yum install ntp #如果ntp已經安裝可以略過
crontab -e
加入如下一行:

15 3 * * * /usr/sbin/ntpdate 210.72.145.44 > /dev/null 2>&1

3.安裝所需的程序

LANG=C
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel
4.下載軟件

mkdir -p /opt/software
wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.33.tar.gz/from/http://mysql.he.net/
wget http://www.sphinxsearch.com/downloads/sphinx-0.9.9-rc1.tar.gz
 
5.編譯安裝軟件
5.2編譯安裝mysql
以下內容存爲mysql-install.sh

/usr/sbin/groupadd mysql
/usr/sbin/useradd -g mysql mysql
tar zxvf mysql-5.1.33.tar.gz

#sphinx安裝
cd /opt/software

tar zxvf sphinx-0.9.9-rc1.tar.gz  -C  /opt
cd /opt/sphinx-0.9.9-rc1
cp -R /opt/sphinx-0.9.9-rc1/mysqlse /opt/mysql-5.1.33/storage/sphinx

cd /opt/mysql-5.1.33

sh BUILD/autorun.sh

cd mysql-5.1.33/
./configure --prefix=/usr/local/webserver/mysql/  --without-debug --without-bench --enable-thread-safe-client --enable-assembler --enable-profiling --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-charset=latin1  --with-extra-charsets=utf8 --with-plugins=innobase  --with-mysqld-user=mysql --without-embedded-server --with-server-suffix=-yicike  --enable-local-infile  --with-plugins=sphinx --with-plugins=all --with-unix-socket-path=/usr/local/webserver/mysql/sock/mysql.sock
 

make && make install
chmod +w /usr/local/webserver/mysql
chown -R mysql:mysql /usr/local/webserver/mysql
cd ../
執行(如果不是另存爲mysql-install.sh的可以忽略這一步)

chmod +x mysql-install.sh
./mysql-install.sh
5.2.1創建MySQL數據庫存放目錄 www.britepic.org

mkdir -p /data/mysql/data/
chown -R mysql:mysql /data/mysql/
5.2.2以mysql用戶帳號的身份建立數據表

/usr/local/webserver/mysql/bin/mysql_install_db --basedir=/usr/local/webserver/mysql --datadir=/data/mysql/data --user=mysql
 
可能會失敗,如果機器裏以前安裝了mysql,需要將原來的my.cnf名稱修改爲my.cnf.temp
5.2.3創建my.cnf配置文件

vim /data/mysql/my.cnf
輸入以下內容

[client]
default-character-set = utf8
port    = 3306
socket  = /tmp/mysql.sock

[mysql]
prompt="(\u:www.yicike.com:)[\d]> "
no-auto-rehash

[mysqld]
default-character-set = utf8
user    = mysql
port    = 3306
socket  = /tmp/mysql.sock
basedir = /usr/local/webserver/mysql
datadir = /data/mysql/data
open_files_limit    = 10240
back_log = 600
max_connections = 1000
max_connect_errors = 6000
table_cache = 614
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 2M
join_buffer_size = 2M
thread_cache_size = 300
thread_concurrency = 8
query_cache_size = 32M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
default-storage-engine = MyISAM
default_table_type = MyISAM
thread_stack = 192K
transaction_isolation = READ-COMMITTED
tmp_table_size = 246M
max_heap_table_size = 246M
long_query_time = 1
log_long_format
log-bin = /data/mysql/binlog
binlog_cache_size = 4M
binlog_format = MIXED
max_binlog_cache_size = 8M
max_binlog_size = 512M
expire_logs_days = 7
key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_max_extra_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover

skip-name-resolve
master-connect-retry = 10
#slave-skip-errors = 1032,1062,126,1114,1146,1048,1396

server-id = 2

innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 8G #由於我的機器是16G
innodb_data_file_path = ibdata1:1024M:autoextend   
innodb_file_io_threads = 4
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M
innodb_log_file_size = 128M                        
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = 0
[mysqldump]
quick
max_allowed_packet = 32M

5.2.4創建管理MySQL數據庫的shell腳本

vim /data/mysql/mysql
輸入以下內容

#!/bin/sh

mysql_username="admin"
mysql_password="12345678"

function_start_mysql()
{
    printf "Starting MySQL...\n"

 

    /bin/sh /usr/local/webserver/mysql/bin/mysqld_safe --defaults-file=/data/mysql/my.cnf 2>&1 > /dev/null &
}

 

function_stop_mysql()
{
    printf "Stoping MySQL...\n"
    /usr/local/webserver/mysql/bin/mysqladmin -u ${mysql_username} -p${mysql_password} -S /tmp/mysql.sock shutdown
}

function_restart_mysql()
{
    printf "Restarting MySQL...\n"
    function_stop_mysql
    sleep 5
    function_start_mysql
}

function_kill_mysql()
{
    kill -9 $(ps -ef | grep 'bin/mysqld_safe' | awk '{printf $2}')
    kill -9 $(ps -ef | grep 'libexec/mysqld' | awk '{printf $2}')
}

if [ "$1" = "start" ]; then
    function_start_mysql
elif [ "$1" = "stop" ]; then
    function_stop_mysql
elif [ "$1" = "restart" ]; then
function_restart_mysql
elif [ "$1" = "kill" ]; then
function_kill_mysql
else
    printf "Usage: /data/mysql/mysql {start|stop|restart|kill}\n"
fi
加上可執行權限

chmod +x /data/mysql/mysql
5.2.5創建一個具有root權限的用戶(admin)和密碼(12345678)
啓動數據庫

/data/mysql/mysql start
 
通過命令行登錄管理MySQL服務器(不用密碼)
/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock
創建賬號

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' IDENTIFIED BY '12345678';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'127.0.0.1' IDENTIFIED BY '12345678';
FLUSH PRIVILEGES;
 
停止數據庫
/data/mysql/mysql stop
 
phpmyadmin管理
 
可能phpmyadmin連接不上mysql,這是由於原來安裝了MYSQL,需要修改php.ini,加上以下這個
mysql.default_socket =/tmp/mysql.sock
部署成功後,我們價網的速度明顯快多了。

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