由于想配置mysql 的读写分离,但是我只有一台阿里云服务器,而且只安装了一个mysql,
因为一台mysql上启动多实例的话,相当于运行了多台mysql数据库,
所以这里就利用启动mysql多实例来模拟两台mysql,
从而配置mysql的主从复制,进而利用mycat配置mysql的读写分离。
一、新建一个存放实例的文件夹,实例的数据都在里面。
一、复制mysql的配置文件my.cnf,名字自己取我这里是3303.cnf,当做实例启动的配 置文件
需要说明的是,文件夹的位置自己拟定,而且需要记住路径,我这里新建的
路径是**/var/lib/**,如图片所示,箭头所指就是我之前配置好的数据文件夹,现在我们来配置多一个,命名为**3_mysql**(名字自己取,记得路径就行)。
1、 以前我配置好的两个实例
2、新建3_mysql
cd /var/lib/
mkdir 3_mysql
3、赋予3_mysql文件夹mysql权限
chown -R mysql.mysql 3_mysql
4、在apparmor中添加读写权限
/var/lib/3_mysql / r,
/var/lib/3_mysql /** rwk,
打开apparmor
vim /etc/apparmor.d/usr.sbin.mysqld
如图所示,添加权限
service apparmor restart
至此,我们的数据文件就暂告一段落,接下来配置mysql配置文件
1、mysql启动时会读取一个配置文件my.cnf,我们想要增加一个实例,只要复制多
份my.cnf就行了,当然名字要改成自己喜欢的,开启几个就复制几个,同样的,
你的数据文件夹也就要配置多几个,一一对应的。
2、 socket、pid、log文件都是在启动以后才生成的,并且socket和pid在启动时生
成,结束mysql实例后就会删除。
3、我这里复制my.cnf 到3303.cnf,也就是我们增加实例的配置文件,对应我们刚才
配置的3_mysql数据文件夹
1、找到自己本机mysql的配置文件my.cnf
要是用apt-get install mysql安装的话,my.cnf就在/etc/mysql这个路径下
我的话就是在/etc/mysql/下面,要是手动安装的,找不到了也不急
利用查询命令
find / -name my.cnf
找到它的路径
2、 复制my.cnf 到3303.cnf
cd /etc/mysql
cp my.cnf 3303.cnf
3、配置我们刚才复制的3303.cnf(我们当前处于/etc/mysql)
vim 3303.cnf
如图是我们需要修改配置的区域
<1> 端口port: port=3303
<2> socket socket=/var/lib/3_mysql/mysqld.sock
<3> pid-file pid-file=/var/lib/3_mysql/mysqld.pid
<4> datadir datadir=/var/lib/3_mysql
<5> log_error log_error=/var/lib/3_mysql/error.log
<6>注释掉nice =0 #nice = 0
如图,修改后的配置文件
4、初始化我们的数据库
最后一步了,看看我们的配置文件3303.cnf,和数据文件夹3_mysql有没有起
作用
<1> 找到mysql_install_db
find / -name mysql_install_db
我这里是
/usr/bin/mysql_install_db
如图所示的路径
<2>执行初始化语句
cd /usr/bin/
mysql_install_db --defaults-file=/etc/mysql/3303.cnf --basedir=/usr/
--datadir=/var/lib/3_mysql --user=mysql
5、启动我们刚才初始化的3303.cnf
mysqld_safe --defaults-file=/etc/mysql/3303.cnf --user=mysql &
如果一直卡在那里不动,那就说明启动成功
我们测试下端口是否监听
netstat -nlt | grep 3303
如果如图所示显示监听,那么启动成功!
6、连接登录我们刚才启动的3303实例(无密码登录)
mysql -S /var/lib/3_mysql/mysqld.sock -P 3303
mysql> update user set password=password("123456") where user='root';
mysql> flush privileges;
mysql> quit
到此配置ubuntu下配置mysql多实例成功
启动mysql特定实例
mysqld_safe --defaults-file=/etc/mysql/3303.cnf
关闭mysql实例
mysqladmin -u root -p123456 -S /var/lib/3_mysql/mysqld.sock shutdown
登录mysql实例
mysql -S /var/lib/3_mysql/mysqld.sock -P 3303
远程连接加上ip即可
mysql -uroot -p -S /var/lib/3_mysql/mysqld.sock -hlocalhost -P 3303