Reputation:
I have installed one version of mysql. After this I copy the MySQL folder to a new folder called mysql2
(to make the second instances of MySQL).
I have changed the my.cnf
to this:
[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
From mysqld_multi
all the things about start, stop, report is ok. The problem:
When I try from comand line: mysql -P 3306
. It connect to the first instances. If I try: mysql -P 3308
. The same thing.
If I try: mysql -S /.../mysql2/mysql.sock
. It works. The same whit first instances when I try: mysql -S /.../mysql/mysql.sock
.
What can I do to connect by port? Or how can I connect from PHP to second instances where in comand line I can do it only by mysql.sock
.
Upvotes: 2
Views: 3671
Reputation: 40021
On Linux the client always connects through sockets unless you specify a numeric host. So
mysql -h127.0.0.1 -P3308
Mysql sandbox does all this for you, but for production I would go with two machines.
Upvotes: 3