当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 3 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 9.10下源码安装多实例mysql 手记
帖子发表于 : 2010-06-08 19:19 

注册: 2009-05-16 14:22
帖子: 198
送出感谢: 0 次
接收感谢: 0 次
downlaod source code from dev.mysql.com
tar xvzf mysql-version-tar.gz
在这之前你需要阅读源码安装的使用说明 :主要有三个说明文档:
在解压源码下面:INSTALL INSTALL-BINARY(2.3. MySQL Installation Using a Source Distribution) INSTALL-SOURCE
因此我们主要参考源码安装:
首先将我们的执行目录转到解压目录:
cd mysql-version(default)
在参考安装说明的同时,查看配置参数,默认值使用于大多说情况,因此一般不需要修改。因为我是在同一台电脑
装多个实例,因此需要修改的东西会多点。
./configure --help #long options is recommended!
`configure' configures MySQL Server 5.1.47 to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
-h, --help display this help and exit
--help=short display options specific to this package
--help=recursive display the short help of all the included packages
-V, --version display version information and exit
-q, --quiet, --silent do not print `checking...' messages
--cache-file=FILE cache test results in FILE [disabled]
-C, --config-cache alias for `--cache-file=config.cache'
-n, --no-create do not create output files
--srcdir=DIR find the sources in DIR [configure dir or `..']

。。。。。。。。。。。。。。。。。
now begin:
groupadd sql
useradd -g sql sql
./configure --prefix=/var/sql --sysconfdir=/var/sql/etc --with-debug --with-low-memory
....................
error: No curses/termcap library found 。。。。。
上网查资料手工解决:
wget http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.6.tar.gz
tar zxvf ncurses-5.6.tar.gz
cd ncurses-5.6
./configure
make
make install clean

工具测试 测试脚本如下 为了避免类似的错误测试工具是否存在,
1 #! /bin/bash
2 # this script written for ubuntu to test the tool
3 for tool in autoconf automake bison gcc m4 libtool make
4 do
5 echo "Checking for $tool :"
6 $tool --version|head -n1 #note that there are two dash before "version"
7 done;
~
然后在重新测试: ./configure --prefix=/var/sql --sysconfdir=/var/sql/etc --with-debug --with-low-memory

/bin/rm: cannot remove `libtoolT': No such file or directory

autoreconf --force --install
顺利完成,然后编译:make (编译的时间根据机器的不同可能有长短,我的时间很长,呵呵)
然后 安装:make install
cd /var/sql
chown -R sql .
chgrp -R sql .
bin/mysqld_installdb --user=sql --datadir=/var/sql/data
Installing MySQL system tables...
100607 20:16:58 [Warning] Ignoring user change to 'sql' because the user was set to 'root' earlier on the command line

100607 20:16:58 [Warning] Forcing shutdown of 2 plugins
OK
Filling help tables...
100607 20:16:58 [Warning] Ignoring user change to 'sql' because the user was set to 'root' earlier on the command line

100607 20:16:59 [Warning] Forcing shutdown of 2 plugins
OK
mysqlcheck --print-defaults (之所以运行该命令是因为我的电脑上面 有多个mysql 实例)
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
然后拷贝一份配置文件供自己参考:我比较懒只修改了端口和路径(该路径你自己创建的用户(sql在本例中)必须拥有写权限不然还是无法执行
[client]
port = 3308
socket = /var/sql/var/run/mysqld/mysqld.sock
[mysqld]

#user = mysql
user =root
#default-storage-engine=innodb

pid-file = /var/sql/var/run/mysqld/mysqld.pid
socket = /var/sql/var/run/mysqld/mysqld.sock
port = 3308
basedir = /var/sql
datadir = /var/sql/data
tmpdir = /tmp
root@ubutu-desktop:/var/sql# bin/mysqld_safe --user=sql &
在另外一个窗口中:
--port=3308 --socket=/var/sql/var/run/mysqld/mysqld.sock --user=root
--port=3306 --socket=/var/run/mysqld/mysqld.sock --prompt=\u:@\h[\d]> --host=localhost --user=root --password=usst (/ect/mysql.cnf)
然后测试登录
ubutu@ubutu-desktop:~$ mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.1.47-debug Source distribution
成功
apt-get install mysql-server
/etc/init.d/mysql start
mysql -uroot -p
passwd:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.1.37-1ubuntu5.1 (Ubuntu)
因此双实例成功!
在中间曾遇到这个问题,可能是因为我在配置以前没有测试安装工具的原因,因此如果遇见了类似的错误,你可以检查一下的的安装工具是否齐全(脚本在上面)
/bin/bash ../ylwrap sql_yacc.yy y.tab.c sql_yacc.cc y.tab.h sql_yacc.h y.output sql_yacc.output -- -d --verbose
../ylwrap: line 111: -d:找不到命令
make[1]: *** [sql_yacc.cc] 错误 1
make[1]:正在离开目录 `/var/mysql-5.1.47/sql'
make: *** [all-recursive] 错误 1

后记:
现在有个问题就是,二者还不能同时启动,原因是读取配置文件的顺序决定的,因此在研究中,如解决会补上!


_________________
missing is i missing you...


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 9.10下源码安装多实例mysql 手记
帖子发表于 : 2010-06-08 23:52 

注册: 2010-06-08 23:40
帖子: 5
送出感谢: 0 次
接收感谢: 0 次
你好 你能具体贴出来下 你的多实例配置么。。。我配置多实例后 怎么数据是在同一个目录里呢。。。启用多实例后,每个实例单独一个目录,我这里出现了错误,是共用了一个目录,我这里设置了,datadir分别为不同的目录。你能解释下么。。。谢谢。。。我这里怀疑我这里是mysql_install_db有问题。。。但是不太清楚怎么弄。。。。是不是每个实例在执行时间 mysql_install_db --datadir=分别写上对应的数据目录呢。。。


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 9.10下源码安装多实例mysql 手记
帖子发表于 : 2010-06-10 19:18 

注册: 2009-05-16 14:22
帖子: 198
送出感谢: 0 次
接收感谢: 0 次
volunteers 写道:
你好 你能具体贴出来下 你的多实例配置么。。。我配置多实例后 怎么数据是在同一个目录里呢。。。启用多实例后,每个实例单独一个目录,我这里出现了错误,是共用了一个目录,我这里设置了,datadir分别为不同的目录。你能解释下么。。。谢谢。。。我这里怀疑我这里是mysql_install_db有问题。。。但是不太清楚怎么弄。。。。是不是每个实例在执行时间 mysql_install_db --datadir=分别写上对应的数据目录呢。。。

执行时间 mysql_install_db --datadir,首先我解释一下,我的数据库有一个是默认的安装也就是官方的源安装的,
上面的这个是自己配置的,在启动实例的时候你需要自己手动指定配置文件,如果你不知到配置文件的读取顺序,你可以用mysqlcheck 查看一下你的
配置文件的读取顺序,这样比较好,具体的我也在研究,可以多交流交流。在着有个多实例管理软件可以研究一下,名字忘记了, :em06


_________________
missing is i missing you...


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

当前时区为 UTC + 8 小时


在线用户

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


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

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

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