1、建立多实例数据存放目录,以端口为目录:
mkdir -p /data/{3306,3307}/log
2、在3306、3307目录下添加配置文件:
配置根据情况修改,这里只贴一个配置,只需要改改端口就好。
[root@mysql data]# cat /data/3306/my.cnf [client] port = 3306 socket = /data/3306/mysql.sock [mysqld] port=3306 socket = /data/3306/mysql.sock pid-file = /data/3306/data/mysql.pid basedir = /usr/local/mysql datadir = /data/3306/data #server-id=1 #log-bin=mysql-bin #log-bin-index= mysql-bin.index # LOGGING log_error=/data/3306/log/mysql-error.log slow_query_log_file=/data/3306/log/mysql-slow.log
3、初始化第一个实例:
mysql_install_db --datadir=/data/3306/data/ --user=mysql
由于5.6版本后安装都会随机生成一个密码在:~/.mysql_secret
[root@mysql data]# cat ~/.mysql_secret # Password set for user 'root@localhost' at 2016-06-01 09:25:18 bse5kaaG.xyf
启动实例3306:
/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 > /dev/null &
修改密码:提示密码在命令行中不安全。
[root@mysql data]# mysqladmin -uroot -pbse5kaaG.xyf password '123456' -S /data/3306/mysql.sock mysqladmin: [Warning] Using a password on the command line interface can be insecure. Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
完成上面就可以登陆3306端口的Mysql啦。
4、初始化第二个实例:
mysql_install_db --datadir=/data/3307/data/ --user=mysql
报错:提示data目录不为空,虽然上面已经执行了:rm -rf /data/3307/data/*但是并不能解决问题。
[root@mysql data]# mysql_install_db --datadir=/data/3307/data/ --user=mysql 2016-06-01 09:33:45 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize 2016-06-01 09:33:45 [ERROR] The data directory '/data/3307/data/' already exist and is not empty.
解决方法:把整个data目录删除; /data/3307/data,同重新建立一个data目录。
rm -rf /data/3307/data mkdir /data/3307/data
修改密码:查看初始化生成的随机密码:
[root@mysql data]# cat ~/.mysql_secret # Password set for user 'root@localhost' at 2016-06-01 09:36:20 Z7fifnuhRMUZ
启动实例3307:
/bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf 2>&1 > /dev/null &
再修改3307实例的密码:
mysqladmin -uroot -pZ7fifnuhRMUZ password '123456' -S /data/3307/mysql.sock
查看实例启动情况:
这样就可以在单机上做主从,读写分离的实验啦。
THE END
暂无评论内容