我安装了一个版本的mysql。在此之后,我将MySQL文件夹复制到名为mysql2
的新文件夹(以创建MySQL的第二个实例)。
我已将my.cnf
更改为:
[mysqld_multi]
mysqld=/usr/bin/mysqld_safe
mysqladmin=/usr/bin/mysqladmin
log=/var/log/mysqld_multi.log
user=multi_admin
password=secret
[mysqld1]
port=3306
datadir=/var/lib/mysql
pid-file=/var/lib/mysql/mysql.pid
socket=/var/lib/mysql/mysql.sock
user=mysql
log-error=/var/log/mysql1.err
server-id=1
log-bin=mysql-bin
[mysqld2]
port=3308
datadir=/var/lib/mysql2
pid-file=/var/lib/mysql2/mysql.pid
socket=/var/lib/mysql2/mysql.sock
user=mysql
log-error=/var/log/mysql2.err
server-id=2
log-bin=mysql-bin
从mysqld_multi
开始,停止,报告的所有事情都可以。问题:
当我从命令行尝试时:mysql -P 3306
。它连接到第一个实例。如果我尝试:mysql -P 3308
。同样的事情。
如果我尝试:mysql -S /.../mysql2/mysql.sock
。有用。我尝试时使用相同的第一个实例:mysql -S /.../mysql/mysql.sock
。
通过端口连接可以做什么?或者我如何从PHP连接到第二个实例,在命令行中我只能通过mysql.sock
进行连接。
答案 0 :(得分:3)
在Linux上,客户端始终通过套接字连接,除非您指定数字主机。所以
mysql -h127.0.0.1 -P3308
Mysql sandbox为您完成所有这些,但是对于生产,我会选择两台机器。