`
renwolang521
  • 浏览: 22859 次
  • 性别: Icon_minigender_1
  • 来自: 西安—>北京
社区版块
存档分类
最新评论

CentOS5 编译安装mysql

 
阅读更多

MySQL 从5.5 后改用cmake 来编译,所以需要先安装cmake,还需要安装rpmbuild

1.安装cmake,下载:http://www.cmake.org/cmake/resources/software.html

# tar xvf cmake-2.8.10.2.tar.gz
# cd cmake-2.8.10.2
# ./configure
# make
# make install

 2.安装rpmbuild

# yum install rpm-build

 3.编译安装mysql

    {mysql安装目录} ——替换为你自己的mysql 安装目录

    {mysql数据目录} ——替换为你自己的mysql 数据目录

    {mysql数据目录}/data ——为你的mysq数据库表文件存放地址

 

    下载:http://cdn.mysql.com/Downloads/MySQL-5.5/MySQL-5.5.30-1.linux2.6.src.rpm

    执行如下命令:

# rpm -ivh MySQL-5.5.30-1.linux2.6.src.rpm
# cd /usr/src/redhat/SOURCES
# tar xvf mysql-5.5.30.tar.gz
# cd mysql-5.5.30
# cmake . \
	-DCMAKE_INSTALL_PREFIX={mysql安装目录} \
	-DMYSQL_DATADIR={默认数据库文件目录} \
	-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
	-DMYSQL_TCP_PORT=3306 \
	-DDEFAULT_CHARSET=utf8 \
	-DDEFAULT_COLLATION=utf8_general_ci \
	-DEXTRA_CHARSETS=all \
	-DWITH_EMBEDDED_SERVER=0 \
	-DWITH_MYISAM_STORAGE_ENGINE=1 \
	-DWITH_INNOBASE_STORAGE_ENGINE=1 \
	-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
	-DWITH_FEDERATED_STORAGE_ENGINE=1 \
	-DWITH_READLINE=1 \
	-DENABLED_LOCAL_INFILE=1 \
	-DWITH_DEBUG=0 \
	-DWITH_SSL=yes

# make
# make install

# groupadd mysql
# useradd -g mysql mysql

# chmod +w {mysql安装目录}
# chown -R mysql:mysql {mysql安装目录}

6. 初始化

   

 

 

# {mysql安装目录}/scripts/mysql_install_db --basedir={mysql安装目录} --datadir={mysql数据目录}/data --user=mysql
 

 

7. 配置文件

    在{mysql数据目录} 下新建my.cnf 配置文件

 

# vi my.cnf
 
[client]
character-set-server = utf8
port    = 3306
socket  = /tmp/mysql.sock

[mysqld]
character-set-server = utf8
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
user    = mysql
port    = 3306
socket  = /tmp/mysql.sock
basedir = {mysql安装目录}
datadir = {mysql数据目录}/data/
log-error = {mysql数据目录}/mysql_error.log
pid-file = {mysql数据目录}/mysql.pid
open_files_limit    = 10240
back_log = 600
max_connections = 5000
max_connect_errors = 6000
table_cache = 614
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 1M
join_buffer_size = 1M
thread_cache_size = 300
#thread_concurrency = 8
query_cache_size = 512M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
default-storage-engine = MyISAM
thread_stack = 192K
transaction_isolation = READ-COMMITTED
tmp_table_size = 246M
max_heap_table_size = 246M
long_query_time = 3
log-slave-updates
log-bin = {mysql数据目录}/binlog/binlog
binlog_cache_size = 4M
binlog_format = MIXED
max_binlog_cache_size = 8M
max_binlog_size = 1G
relay-log-index = {mysql数据目录}/relaylog/relaylog
relay-log-info-file = {mysql数据目录}/relaylog/relaylog
relay-log = {mysql数据目录}/relaylog/relaylog
expire_logs_days = 30
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_repair_threads = 1
myisam_recover

interactive_timeout = 120
wait_timeout = 120

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

#master-host     =   192.168.1.2
#master-user     =   username
#master-password =   password
#master-port     =  3306

server-id = 1

innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 512M
innodb_data_file_path = ibdata1:256M: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

#log-slow-queries = {mysql数据目录}/slow.log
#long_query_time = 10

[mysqldump]
quick
max_allowed_packet = 32M
 

 

8. 启动

   在{mysql数据目录下} 编写启动脚本mysql

# vi mysql
 
#!/bin/sh

mysql_port=3306
mysql_username="root"
mysql_password=""

function_start_mysql()
{
    printf "Starting MySQL...\n"
    /bin/sh {mysql安装目录}/bin/mysqld_safe --defaults-file={mysql数据目录}/my.cnf 2>&1 > /dev/null &
}

function_stop_mysql()
{
    printf "Stoping MySQL...\n"
    {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' | grep ${mysql_port} | awk '{printf $2}')
    kill -9 $(ps -ef | grep 'libexec/mysqld' | grep ${mysql_port} | 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: {mysql数据目录}/mysql {start|stop|restart|kill}\n"
fi
    启动脚本 可执行
# chmod +x mysql
# mysql start
 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics