Запустите несколько экземпляров MySQL в MySQL
Вопрос
Я хочу использовать сервер MySQL на двух разных портах на одном компьютере.Я сделал два отдельных файла конфигурации.Когда я пытаюсь подключиться к серверу MySQL через второй порт, который я определил, я не могу подключиться.ОС, на которой работает MySQL, — Windows Vista.я тоже пробовал начать mysqld
из командной строки после указания порта.
Это пример файла, который я изменил, чтобы сервер MySQL мог читать его с двух разных портов:
# CLIENT SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by MySQL client applications.
# Note that only client applications shipped by MySQL are guaranteed
# to read this section. If you want your own MySQL client program to
# honor these values, you need to specify it as an option during the
# MySQL client library initialization.
#
[client]
port=3306
[mysql]
mysql-path="C:\Program Files\MySQL\MySQL Server 5.1\bin"
default-character-set=latin1
[client]
port=3307
[mysql1]
mysql1-path="C:\Program Files\MySQL2\MySQL Server 5.1\bin"
default-character-set=latin1
# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]
mysqld-path="C:\Program Files\MySQL\MySQL Server 5.1\bin\"
# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.1/"
#Path to the database root
datadir="C:/ProgramData/MySQL/MySQL Server 5.1/Data/"
#
server_id=1
[mysqld1]
# The TCP/IP Port the MySQL Server will listen on
port=3307
server_id=2
mysqld1-path="C:\Program Files\MySQL2\MySQL Server 5.1\bin\"
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL2/MySQL Server 5.1/"
#Path to the database root
datadir="C:/ProgramData/MySQL2/MySQL Server 5.1/Data/"
#
# The default character set that will be used when a new schema or table is
# created and no character set is defined
default-character-set=latin1
# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
Решение
Процедура установки немного отличается в зависимости от вашего сервера/операционной системы.
Для Linux вы можете найти это полезным - http://code.openark.org/blog/mysql/manually-installing-multiple-mysql-instances-on-linux-howto
Погуглите, возможно, вы найдете и для других.
Другие советы
лучше использовать mysql_multi http://www.pythian.com/blog/using-mysqld_multi-to-manage-multiple-servers/
копии конфигов - это грязный хак, имхо
Вам также необходимо указать другой datadir
(т.е.каталог, содержащий файлы базы данных) в командной строке.Вы не можете открывать одни и те же базы данных в разных экземплярах, так как они могут заблокировать друг друга и/или привести к повреждению данных.