ubuntu 多个mysql_同一台Ubuntu 启动多个mysql

ubuntu 安装mysql 启动多个端口mysql服务

apt-get update

apt-get install mysql-server

如果update失败 1.检查是否不能域名解析。2.看看源是否有问题 具体自行百度吧。

这种方法默认的配置文件在 /etc/mysql/my.cnf

这样安装的默认端口上3306

下面我们再启动一个3307端口的mysql 服务,实现一台机器上同时运行多个数据库实例

1, 创建新的mysql实例数据存储目录,我这里创建2个 。你想创建几个就创建几个

mkdir -p /var/lib/1_mysql

mkdir -p /var/lib/2_mysql

如果权限不够 记得修改一下一下

chown -R mysql.mysql 1_mysql 2_mysql

2, 把my.cnf配置文件复制一份,开几个端口要复制几份。

cp /etc/mysql/my.cnf 3307.cnf

cp /etc/mysql/my.cnf 3302.cnf

3,修改3307.cnf文件,修改内容如下,你也可以根据自己情况修改

我只改了 3307 。3302 的自己修改

[client]

port = 3307

socket = /var/run/mysqld1/mysqld.sock

[mysqld_safe]

socket = /var/lib/1_mysql/mysqld.sock

#nice = 0

pid-file = /var/lib/1_mysql/mysqld.pid

[mysqld]

user = mysql

socket = /var/lib/1_mysql/mysqld.sock

port = 3307

basedir = /usr

datadir = /var/lib/1_mysql

tmpdir = /tmp

4,初始化数据库:

mysql_install_db --defaults-file=/etc/mysql/3307.cnf --basedir=/usr/ --datadir=/var/lib/1_mysql --user=mysql

mysql_install_db --defaults-file=/etc/mysql/3302.cnf --basedir=/usr/ --datadir=/var/lib/2_mysql --user=mysql

如果不是默认安装的请注意安装的路径 如果不知道

查找一下 mysql_install_db

find / -name mysql_install_db

找到后 在其目录下执行

./mysql_install_db --defaults-file=/etc/mysql/3307.cnf --basedir=/usr/ --datadir=/var/lib/1_mysql --user=mysql

注意再执行上面的命令的时候出错请看第8步,没错误恭喜你。继续往下看

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

mysqld_safe --defaults-file=/etc/mysql/3307.cnf --user=mysql &

mysqld_safe --defaults-file=/etc/mysql/3302.cnf --user=mysql &

看一下我们的成果 如下

root@ubuntu84:/var/lib# ps -axu|grep mysql

root 20121 0.0 0.0 4448 1608 pts/2 S 21:26 0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/mysql/3302.cnf --user=mysql

mysql 20464 0.0 0.6 614620 54204 pts/2 Sl 21:26 0:05 /usr/sbin/mysqld --defaults-file=/etc/mysql/3302.cnf --basedir=/usr --datadir=/var/lib/2_mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/lib/2_mysql/error.log --pid-file=/var/lib/2_mysql/mysqld.pid --socket=/var/lib/2_mysql/mysqld.sock --port=3302

root 20486 0.0 0.0 4448 1600 pts/2 S 21:26 0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/mysql/3303.cnf --user=mysql

mysql 20829 0.0 0.6 483156 53776 pts/2 Sl 21:26 0:04 /usr/sbin/mysqld --defaults-file=/etc/mysql/3303.cnf --basedir=/usr --datadir=/var/lib/3_mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/lib/3_mysql/error.log --pid-file=/var/lib/3_mysql/mysqld.pid --socket=/var/lib/3_mysql/mysqld.sock --port=3303

root 20851 0.0 0.0 4448 1612 pts/2 S 21:26 0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/mysql/3304.cnf --user=mysql

mysql 21195 0.0 0.6 483156 52544 pts/2 Sl 21:26 0:05 /usr/sbin/mysqld --defaults-file=/etc/mysql/3304.cnf --basedir=/usr --datadir=/var/lib/4_mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/lib/4_mysql/error.log --pid-file=/var/lib/4_mysql/mysqld.pid --socket=/var/lib/4_mysql/mysqld.sock --port=3304

root 21629 0.0 0.0 101444 4564 pts/2 S+ 21:49 0:00 mysql -uroot -p -S /var/lib/2_mysql/mysqld.sock -P 3304

root 24635 0.1 0.0 4448 1724 pts/5 S 23:46 0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/mysql/3307.cnf --user=mysql

mysql 24978 0.2 0.5 418756 46956 pts/5 Sl 23:46 0:00 /usr/sbin/mysqld --defaults-file=/etc/mysql/3307.cnf --basedir=/usr --datadir=/var/lib/1_mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/lib/1_mysql/error.log --pid-file=/var/lib/1_mysql/mysqld.pid --socket=/var/lib/1_mysql/mysqld.sock --port=3307

root 24999 0.0 0.0 10468 2244 pts/5 S+ 23:47 0:00 grep --color=auto mysql

root 29058 0.0 0.0 4448 1732 ? S 01:48 0:00 /bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/mysql/my.cnf --user=mysql

mysql 29425 0.0 0.6 484496 52180 ? Sl 01:48 0:49 /usr/sbin/mysqld --defaults-file=/etc/mysql/my.cnf --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/var/log/mysql/error.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/run/mysqld/mysqld.sock --port=3306

6,停止MYSQL,需要指定对应的sock文件。

mysqladmin -uroot -S /var/lib/1_mysql/mysqld.sock shutdown

7,登陆3307端口的mysql:

mysql -S /var/lib/1_mysql/mysqld.sock -P 3307

远程连接加上ip即可

mysql -uroot -p -S /var/lib/1_mysql/mysqld.sock -hlocalhost -P 3307

8,我安装的时候出现如下类似的错误,找了好多资料。资料地址

2014-12-11 16:22:57 26309 [Warning] Can't create test file /data/mysql/server2.lower-test

2014-12-11 16:22:57 26309 [Warning] Can't create test file /data/mysql/server2.lower-test

2014-12-11 16:22:57 26309 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)

2014-12-11 16:22:57 26309 [Warning] Buffered warning: Changed limits: table_cache: 431 (requested 2000)

2014-12-11 16:22:57 26309 [Note] Plugin 'FEDERATED' is disabled.

^G/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13 - Permission denied)

2014-12-11 16:22:57 26309 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.

具体原因看转载

编辑

vim /etc/apparmor.d/usr.sbin.mysqld

添加如下

/var/lib/1_mysql/ r,

/var/lib/2_mysql/ r,

/var/lib/1_mysql/** rwk,

/var/lib/2_mysql/** rwk,

保存 重启

service apparmor restart

截止到这里 再回去重新执行第 4步

我想,你一定是从搜索引擎搜索这个标题进来的!你一定是想改变mysql默认安装的数据目录!

你已经修改了my.cnf中的datadir的值

你已经chown和chmod了数次新数据目录或者其父路径的属主和权限

你无数次地试图service mysql start,或者 /etc/init.d/mysql start,以及mysql_install_db!

恭喜你看见这篇文章,我在被系统坑了几个小时之后,找到了解决的方法。

这个原因有二,其中任意的一个原因都会造成你被系统告知这个warning。如果你不是一个专业的linux系统安全工程师,或者你只是个PHP程序

员,并没有对系统安全有深入的研究,你就不会太容易找到它的答案。

第一,selinux,记得当年念书时,字符界面安装redhat(很古老的操作系统么。。。)的时候,有这么一个选项,通常大家都听取前辈的建议,改

变默认值以不安装它。但如果你恰好要操作的这台机器开着selinux,它确实能够使你的mysql无法在新目标位置进行mysql_install_db的操作,并

爆出标题所示的警告。一个简单的解决办法是使用命令暂时关闭selinux,以便让你的操作可以继续下去

setenforce 0

但最好使用一个永久方法,以便在重启后继续不要这货。

修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启或等待下次重启。(我用的是Azure的Ubuntu14.04,没有这个目录,OK,那就省事了)

第二,apparmor,这个坑爹货和selinux一样的坑爹,它也对mysql所能使用的目录权限做了限制

在 /etc/apparmor.d/usr.sbin.mysqld 这个文件中,有这两行,规定了mysql使用的数据文件路径权限

/var/lib/mysql/ r,

/var/lib/mysql/** rwk,

你一定看到了,/var/lib/mysql/就是之前mysql安装的数据文件默认路径,apparmor控制这里mysqld可以使用的目录的权限

我想把数据文件移动到/data/mysql下,那么为了使mysqld可以使用/data/mysql这个目录,照上面那两条,增加下面这两条就可以了

/data/mysql/ r,

/data/mysql/** rwk,

重启: sudo service apparmor restart

之后,就可以顺利地干你想干的事儿了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值