注意:本人使用版本为mysql5.7.10,一些参数可能会与其他版本不同
首先创建目录
[root@localhost 3307]# mkdir -p /mysql/{3306,3307}/data
这里(由于端口要用3306和3307,然而为了方便进入目录所以反着写的,纯属个人坏习惯最好别学)
然后将my.cnf拷贝到对应的目录中
[root@localhost 3307]# cp /etc/my.cnf /mysql/3307/
[root@localhost 3307]# cp /etc/my.cnf /mysql/3306/
my.cnf需要增加:
[mysqld]
user=mysql
port=3307
socket=/mysql/3307/mysql.sock
datadir=/mysql/3307/data
pid-file=/mysql/3307/mysql.pid
log-bin=/mysql/3307/mysql-bin
relay-log=/mysql/3307/relay-bin
[mysqld_safe]
log-error=/mysql/3307/mysql_oldboy3307.err
pid-file=/mysql/3307/mysqld.pid
[client]
port=3307
socket=/mysql/3307/mysql.sock
将两个目录进行赋权
[root@localhost 3307]# chown -R mysql /mysql
对MySQL进行初始化(创建一些初始的表和用户啥的)
[root@localhost 3307]# mysqld --initialize --user=mysql --datadir=/mysql/3307/data
[root@localhost 3307]# mysqld --initialize --user=mysql --datadir=/mysql/3306/data
这里如果是5.5则应该使用
$MYSQL_HOME/scripts/mysql_install_db --user=mysql --datadir=/mysql/3307/data
这里如果是5.1则应该使用
mysql_install_db --user=mysql --datadir=/mysql/3307/data
初始化之后就可以启动对应的mysql了
mysqld_safe --defaults-file=/mysql/3306/my.cnf
关闭MySQL方法
mysqladmin -uroot -p'1234567' -S /mysql/3306/mysql.sock shutdown
下面附上启动脚本(自己写的,有哪里可以修改请指正)
#!/bin/sh
#MySQL init
#port
port=3307
#username
mysql_user="root"
#password
mysql_password="1q2w#E\$R"
#bin path
BinPath="/usr/bin"
#sock path
mysql_sock="/mysql/${port}/mysql.sock"
#startup function
function_start_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "Strarting Mysql...\n"
/bin/sh ${BinPath}/mysqld_safe --defaults-file=/mysql/${port}/my.cnf 2>&1 >/dev/null &
else
printf "MySQL is running....\n"
exit
fi
}
#stop function
function_stop_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "MySQL is stopped...\n"
exit
else
printf "Stoping MySQL...\n"
${BinPath}/mysqladmin -u${mysql_user} -p${mysql_password} -S ${mysql_sock} shutdown
fi
}
case $1 in
start)
function_start_mysql
;;
stop)
function_stop_mysql
;;
*)
printf "Usage:/data/${port}/mysql {start|stop}\n"
esac