ubunut下配置mysql多实例(多个端口启动)

来源:互联网 发布:惠州淘宝培训班多少钱 编辑:程序博客网 时间:2024/06/10 15:40

由于想配置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配置文件

二、配置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.cnf3303.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

如图,修改后的配置文件

这里写图片描述

修改log日志路径,方便我们排错
这里写图片描述

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
原创粉丝点击