多实例:也就是在一个服务器上开启多个端口,运行多个mysql服务进程,

这里的主要实现 方法是多个配置文件,多个启动程序 ,多个数据文件,

以下是安装过程


1.安装依赖,

yum install ncurses-devel -y

yum install libaio-devel -y


cmake 的解压

cd cmake-2.8.8

./configure 

gmake(注意这里是gmake)

gmake install

tar xf mysql-5.5.32.tar.gz 


cd mysql-5.5.32


groupadd mysql

useradd mysql -s /sbin/nologin -M -g mysql




cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.32 \

-DMYSQL_DATADIR=/application/mysql-5.5.32/data \

-DMYSQL_UNIX_ADDR=/application/mysql-5.5.32/tmp/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii \

-DENABLED_LOCAL_INFILE=ON \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_FEDERATED_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \

-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \

-DWITH_FAST_MUTEXES=1 \

-DWITH_ZLIB=bundled \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_READLINE=1 \

-DWITH_EMBEDDED_SERVER=1 \

-DWITH_DEBUG=0





make && make install

  


ln -s /application/mysql-5.5.32/ /application/mysql


其实以上就是正常编译安装mysql的正常步骤,如果是多实例安装,下面步骤将不同,


创建目录

mkdir /data/{3306,3307}/data/ -p

至于这里的配置文件,我已经改好,在附件中


然后把相关配置文件复制到相关目录下

cp data/3306/*  /data/3306

cp data/3307/*  /data/3307

tree /data(查看文件树)


这里面有一个技术细节,就是关天mysql启动的问题,这里面启动是调用的脚 本启动,而这个脚 本是基本以下几个命令的。


mysql_safe   --defaults-file=/data/3306/my.cnf>&1 /dev/null &

此命令是数据库的启动命令

mysqladmin -u root -p密码 -S  /data/3306/msyql.sock shutdown



3.授权

chown-R mysql.mysql  /data

起动文件加执行权限

find /data/ -type f -name  "mysql" |xargs chmod +x


初始化

cd /application/mysql/scripts/


./mysql_install_db --basedir=/application/mysql/ --datadir=/data/3306/data/ --user=mysql



./mysql_install_db --basedir=/application/mysql/ --datadir=/data/3307/data/ --user=mysql


启动数据库了

/data/3306/mysql start

/data/3307/mysql start


数据库的登录 

多实例 的登录一定要指定socket

mysql -S /data/3306/mysql.sock


mysql -S /data/3307/mysql.sock


数据库的重启

/data/3306/mysql stop

/data/3306/mysql start


为root 增加密码

mysqladmin -u root -S /data/3306/mysql.sock password '密码'


因为已经加了密码,所以现在如果停止数据库,必须到启动脚本里更新一下密码,否则会报错

vim /data/3306/mysql


然后再做个授权

find /data -type f -name "mysql" -exec chmod 700 {} \;

find /data -type f -name "mysql" -exec chown root.root {} \;

find /data -type f -name "mysql" -exec ls -l {} \;


/data/3306/mysql start