同一台Ubuntu 启动多个mysql

我们在本地搭建主从服务器,首先得启动多个Mysql实例
默认安装的Mysql配置再/etc/mysql/my.cnf,端口3306
那下面我们在启动一个3301端口的实例

  1. 复制一份配置
cp /etc/mysql/my.cnf my_3301.cnf
  1. 创建一个给3301实例使用的文件夹
mkdir /home/mysql/3301
chown mysql:mysql  /home/mysql/ -R
  1. 修改配置
[client]
port        = 3301
socket      = /home/mysql/3301/mysqld.sock

[mysqld_safe]
socket      = /home/mysql/3301/mysqld.sock

[mysqld]
user        = mysql
pid-file    = /home/mysql/3301/mysqld.pid
socket      = /home/mysql/3301/mysqld.sock
port        = 3301
basedir     = /usr
datadir     = /var/lib/mysql_3301
tmpdir      = /tmp
  1. 初始化数据库
sudo mysql_install_db  --defaults-file=/etc/mysql/my_3301.cnf  --basedir=/usr/  --datadir=/var/lib/mysql_3301  --user=mysql

5.启动MySql, 要指定.cnf文件启动

 sudo mysqld_safe --defaults-file=/etc/mysql/my_3301.cnf --user=mysql

看看我们的成果:

[/home/mysql]$ ps aux|grep 3301
root     14554  0.0  0.0  75556  1232 ?        S    11:26   0:00 sudo mysqld_safe --defaults-file=/etc/mysql/my_3301.cnf --user=mysql
root     14555  0.0  0.0   4440   628 ?        S    11:26   0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/mysql/my_3301.cnf --user=mysql
mysql    15159  0.0  0.2 698928 42592 ?        Sl   11:28   0:14 /usr/sbin/mysqld --defaults-file=/etc/mysql/my_3301.cnf --basedir=/usr --datadir=/var/lib/mysql_3301 --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/home/mysql/3301/log/error.log --pid-file=/home/mysql/3301/mysqld.pid --socket=/home/mysql/3301/mysqld.sock --port=3301
lidongw+ 15189  0.0  0.0 107352  1900 pts/1    S+   11:28   0:00 mysql -S /home/mysql/3301/mysqld.sock -uroot -px xxxx
lidongw+ 27141  0.0  0.0  18304  1024 pts/13   S+   18:42   0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=.cvs --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn 3301
  1. 登录mysql的shell
mysql -S /home/mysql/3301/mysqld.sock -uroot -p123456
远程的加上ip 端口
mysql -S /home/mysql/3301/mysqld.sock -uroot -p123456 -h localhost  -P 3307
  1. 如果上面启动有问题,那就是apparmor的配置问题:
vim /etc/apparmor.d/usr.sbin.mysqld

添加新的Mysql实例上面配置的datadir目录进去,这样才能让实例正确找到目录

  /var/lib/mysql_3301/ r,
  /var/lib/mysql_3301/** rwk,

保存重启

service apparmor restart

至此,已经成功运行多一个监听3301的MySql实例,可以为Mysql复制做准备

你可能感兴趣的:(同一台Ubuntu 启动多个mysql)