1>、关闭原有的默认端口3306的mysql:service mysqd stop
2>、拷贝或创建数据文件 cp -r /data/mysql/data1 /data/mysql/data_3307
格式 用bin/mysql_install_db --basedir=mysql的目录 --datadir=数据存放的目录 --user=所属的用户
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/data_3307/ 创建一个新的空数据库
3>给数据文件赋予mysql用户与用户组
chown -R mysql.mysql /data/mysql/data_3307
4>创建multi的配置cnf文件,用于启动这个mysql实例(如3307)载入执行
touch /usr/local/mysql/my_multi.cnf
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user = root #用于登陆和关闭此服务
password = 123456 #同上
[mysqld3307]
socket = /data/mysql/data_3307/mysql_3307.sock
port = 3307
pid-file = /var/lib/mysql_3307/3307.pid
datadir = /data/mysql/data_3307
log = /var/lib/mysql_3307/3307.log
character-set-server = utf8
user = mysql
5>启动你的多实例
./bin/mysqld_multi --defaults-extra-file=/usr/local/mysql/my_multi.cnf start 3307
question:my_print_defaults command not found.
solve:export PATH=/usr/local/mysql/bin:$PATH(只只是临时有效,要永久生效,在/etc/profile编辑)
6>检查是否启动成功
端口监听 netstat -ntlp
活动进程 ps -ef | grep mysql
如果没有发现你要的端口号mysql实例,可以检查下/var/lib/mysql_3307/3307.log文件,排除问题
7>设置新的密码mysqladmin -uroot -S /data/mysql/data_3307/mysql_3307.sock password 123456
8>报错/usr/sbin/mysqld: ambiguous option '--log=/var/lib/mysql/mysql.log' (log-bin, log_slave_updates)
猜测配置文件出错,那个log应该是旧版本的配置吧,改换general_log_file= /var/lib/mysql_3307/3307.log
9>登陆
端口登陆./bin/mysql -uroot -p -h127.0.0.1 -P3306
socket文件登陆 mysql -S /data/mysql/data_3307/mysql_3307.sock
10>加到开机启动(service mysqld_multi report/start 端口使用)
将启动脚本复制一份cp /usr/local/mysql/support-files/mysqld_multi.server /etc/init.d/mysqld_multi
报了一个错误 是找不到 my_print_defaults
解决:ln -s /usr/local/mysql/bin/my_print_defaults /usr/bin/