当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 2 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : ubuntu9.04 源码编译安装mysql5.1
帖子发表于 : 2009-08-18 22:58 

注册: 2008-12-04 11:48
帖子: 9
送出感谢: 0 次
接收感谢: 0 次
下载地址,速度比较稳定

wget http://blog.s135.com/soft/linux/nginx_p ... .34.tar.gz


/usr/sbin/groupadd mysql(建组)


/usr/sbin/useradd -g mysql mysql(建用户)


tar zxvf mysql-5.1.34.tar.gz(解压文件)


cd mysql-5.1.34/(进入文件目录)


./configure --prefix=/usr/local/webserver/mysql/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile --with-plugins=innobase

(至少需要GCC支持,如果遇到问题,请遇山开山,遇水架桥。我接触ubuntu才一周,是新手,但是我觉得网络和错误日志是最好的老师)


make && make install(编译安装,要求上一步没有错误)


chmod +w /usr/local/webserver/mysql


chown -R mysql:mysql /usr/local/webserver/mysql


cd ../

(以上配置信息可根据个人情况修改,如果不明白参数含义,请查阅资料或者直接按这个配置安装)


mkdir -p /data0/mysql/3306/data/


chown -R mysql:mysql /data0/mysql/



/usr/local/webserver/mysql/bin/mysql_install_db --basedir=/usr/local/webserver/mysql --datadir=/data0/mysql/3306/data --user=mysql(初始化数据库,这一步容易出错,如果连接失败,很大可能是这一步出错)



vi /data0/mysql/3306/my.cnf(或者gedit /data0/mysql/3306/my.cnf)

输入以下内容:(建立mysql配置文件)

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

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

[mysqld]
#default-character-set = utf8
user = mysql
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/webserver/mysql
datadir = /data0/mysql/3306/data
open_files_limit = 10240
back_log = 600
max_connections = 3000
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 = /data0/mysql/3306/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 = 1

innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 2048M
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



建立数据库管理脚本

vi /data0/mysql/3306/mysql(或gedit /data0/mysql/3306/mysql)

输入以下内容(这里的用户名admin和密码12345678接下来的步骤会创建):

#!/bin/sh

mysql_port=3306
mysql_username="admin"
mysql_password="12345678"

function_start_mysql()
{
printf "Starting MySQL...\n"
/bin/sh /usr/local/webserver/mysql/bin/mysqld_safe --defaults-file=/data0/mysql/${mysql_port}/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' | grep ${mysql_port} | awk '{printf $2}')
kill -9 $(ps -ef | grep 'libexec/mysqld' | grep ${mysql_port} | awk '{printf $2}')
}

function_connect_mysql()
{
/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock
}

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

elif [ "$1" = "connect" ]; then
function_connect_mysql
else
printf "Usage: /data0/mysql/${mysql_port}/mysql {start|connect|stop|restart|kill}\n"
fi


赋予shell脚本可执行权限:

chmod +x /data0/mysql/3306/mysql

启动MySQL:/data0/mysql/3306/mysql start

通过命令行登录管理MySQL服务器(提示输入密码时直接回车):

/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock

(或者 /data0/mysql/3306/mysql connect)

关闭数据库:/data0/mysql/3306/mysql stop


复制刚才的mysql脚本到/etc/init.d 目录下(ubuntu9.04为例)

chmod +x /etc/init.d/mysql(赋予执行权限)
chkconfig --add mysql(将mysqld服务加入到系统服务:)
执行下面的命令检查mysql服务是否已经生效:
chkconfig --list mysqld
命令输出类似下面的结果:
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
表明mysqld服务已经生效,在2、3、4、5运行级别随系统启动而自动启动,以后可以使用service命令控制mysql的启动和停止。


    启动mysqld服务:
    service mysql start
停止mysql服务:
service mysql stop


执行下面的命令关闭开机自启动:
    chkconfig mysql off


执行下面的命令可以改变开机自启动的运行级别为3、5:
    chkconfig --level 35 mysql on



至此,mysql安装成功,并可以自由的实现开机启动和关闭。


mysql脚本解释:

service mysql statrt (启动mysql)

service mysql connect (连接mysql)

service mysql stop (关闭mysql)

service mysql kill (杀死mysql进程)

service mysql restart(重新启动mysql服务)




ps:按照这个步骤安装,问题应该不大,如果遇到问题,也为比较常见的问题,可以baidu、google,很快解决。因为我没遇到问题,所以就不多说了。

good luck!


最后由 傲川孤鹰 编辑于 2009-08-18 23:16,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: ubuntu9.04 源码编译安装mysql5.1
帖子发表于 : 2009-08-18 23:04 
头像

注册: 2008-12-13 19:39
帖子: 13284
地址: 物华天宝人杰地灵
送出感谢: 1
接收感谢: 6
很详细,向楼主好好学习,天天向上。 :em11


_________________
行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 2 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译