mysql多个实例

1>、关闭原有的默认端口3306的mysql:service mysqd stop

2>、拷贝或建立数据文件 cp -r /data/mysql/data1 /data/mysql/data_3307 mysql

  格式  用bin/mysql_install_db --basedir=mysql的目录 --datadir=数据存放的目录 --user=所属的用户 web

    ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/data_3307/ 建立一个新的空数据库 sql

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/
相关文章
相关标签/搜索