[root@mysql ~]# yum install ncurses-devel libaio-devel -y
[root@mysql cmake-3.6.1]# tar -xf cmake-3.6.1.tar.gz [root@mysql cmake-3.6.1]# cd cmake-3.6.1 [root@mysql cmake-3.6.1]# gmake [root@mysql cmake-3.6.1]# gmake install [root@mysql cmake-3.6.1]# which cmake /usr/local/bin/cmake
[root@mysql tools]# cd mysql-5.5.49
[root@mysql mysql-5.5.49]# useradd -s /sbin/nologin -M mysql
[root@mysql mysql-5.5.49]# id mysql
uid=500(mysql) gid=500(mysql) groups=500(mysql)
[root@mysql mysql-5.5.49]# ./configure cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.49 -DMYSQL_DATADIR=/application/mysql-5.5.49/data -DMYSQL_UNIX_ADDR=/application/mysql-5.5.49/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 [root@mysql mysql-5.5.49]# make [root@mysql mysql-5.5.49]# make install
[root@mysql /]# ln -s /application/mysql-5.5.49/ /application/mysql
root@mysql mysql-5.5.49]# mkdir -p /data/{3306,3307}/data
为了配置多实例需要,需要每个实例建立一个my.cnf配置文件和一个启动文件mysql
配置my.cnf
[root@mysql mysql-5.5.49]# cp support-files/my-small.cnf /data/3306/my.cnf
[root@mysql mysql-5.5.49]# cp support-files/my-small.cnf /data/3307/my.cnf
[root@mysql 3307]# cat my.cnf [client] port = 3307 socket = /data/3307/mysql.sock [mysqld] port = 3307 socket = /data/3307/mysql.sock basedir = /application/mysql datadir = /data/3307/data skip-external-locking key_buffer_size = 16M max_allowed_packet = 1M table_open_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M skip-name-resolve log-bin=mysql-bin binlog_format=mixed max_binlog_size = 500M server-id = 1 [mysqld_safe] log-error=/data/3307/ilanni.err pid-file=/data/3307/ilanni.pid [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout
#初始化mysql多实例
[root@mysql 3306]#/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/data/3306/data --user=mysql [root@mysql 3307]#/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/data/3307/data --user=mysql [root@mysql 3307]# tree /data [root@mysql 3307]# chown -R mysql:mysql /data/3306 [root@mysql 3307]# chown -R mysql:mysql /data/3307
#配置环境变量
[root@mysql 3307]# echo 'export PATH=/application/mysql/bin:$PATH' >> /etc/profile [root@mysql 3307]# source /etc/profile [root@mysql 3307]# echo $PATH /application/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
#启动实例
[root@mysql 3307]# /application/mysql/bin/mysqld_safe --defaults-file=/data/3306/my.cnf & [root@mysql 3307]# /application/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf & [root@mysql 3307]# ps -ef | egrep "3306|3307" root 39045 1323 0 08:44 pts/0 00:00:00 /bin/sh /application/mysql/bin/mysqld_safe --defaults-file=/data/3306/my.cnf mysql 39358 39045 0 08:44 pts/0 00:00:00 /application/mysql-5.5.49/bin/mysqld --defaults-file=/data/3306/my.cnf --basedir=/application/mysql --datadir=/data/3306/data --plugin-dir=/application/mysql/lib/plugin --user=mysql --log-error=/data/3306/ilanni.err --pid-file=/data/3306/ilanni.pid --socket=/data/3306/mysql.sock --port=3306 root 39383 1323 0 08:46 pts/0 00:00:00 /bin/sh /application/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf mysql 39694 39383 1 08:46 pts/0 00:00:00 /application/mysql-5.5.49/bin/mysqld --defaults-file=/data/3307/my.cnf --basedir=/application/mysql --datadir=/data/3307/data --plugin-dir=/application/mysql/lib/plugin --user=mysql --log-error=/data/3307/ilanni.err --pid-file=/data/3307/ilanni.pid --socket=/data/3307/mysql.sock --port=3307
#关闭实例
[root@mysql 3307]# mysqladmin -uroot -S /data/3306/mysql.sock shutdown [root@mysql 3307]# mysqladmin -uroot -S /data/3307/mysql.sock shutdown
#配置MySQL多实例开机自动启动
[root@mysql 3306]# echo "#mysql multi instances" >> /etc/rc.local [root@mysql 3306]# echo "/data/3306/mysql start" >> /etc/rc.local [root@mysql 3306]# echo "/data/3307/mysql start" >> /etc/rc.local [root@mysql 3306]# tail -3 /etc/rc.local #mysql multi instances /data/3306/mysql start /data/3307/mysql start
#编写MySQL启动脚本 /data/${port}/mysql {start|stop|restart}
[root@mysql 3307]# pwd
/data/3307
[root@mysql 3307]# cat mysql #!/bin/sh #init port=3307 mysql_user="root" mysql_pwd="redhat" CmdPath="/application/mysql/bin" mysql_sock="/data/${port}/mysql.sock" #startup function function_start_mysql() { if [ ! -e "$mysql_sock" ];then printf "Starting MySQL... " /bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 > /dev/null & else printf "MySQL is running... " exit fi } #stop function function_stop_mysql() { if [ ! -e "$mysql_sock" ];then printf "MySQL is stopped... " exit else printf "Stoping MySQL... " ${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown fi } #restart function function_restart_mysql() { printf "Restarting MySQL... " function_stop_mysql sleep 2 function_start_mysql } case $1 in start) function_start_mysql ;; stop) function_stop_mysql ;; restart) function_restart_mysql ;; *) printf "Usage: /data/${port}/mysql {start|stop|restart} " esac