我们可以在一台机器上运行多个MySQL服务器吗?
感谢。
答案 0 :(得分:17)
是的,您只需要在不同的端口上运行它们,并将它们指向不同的lib目录以获取其数据。
这是一个很好的参考:http://dev.mysql.com/doc/refman/5.1/en/mutiple-servers.html
(如果您想将其用于测试,我建议您查看MySQL Sandbox,现在替换为dbdeployer)
答案 1 :(得分:4)
在同一台机器上运行多个mysql实例(在不同的端口上)有多种方法。在这里,我使用了相同的二进制文件并使用了单独的配置文件(具有单独的端口,pid,套接字和数据目录)。 我们需要为datadir和log文件夹(如果使用)创建新目录。我们还需要为这些文件夹分配适当的权限:
# mkdir /var/lib/mysql2
# chown -R mysql.mysql /var/lib/mysql2/
# mkdir /var/log/mysql2
# chown -R mysql.mysql /var/log/mysql2
接下来,我们需要一个与默认mysql配置文件相同的单独配置文件。首先,复制现有的并更改所需的值。
# cp /etc/my.cnf /etc/my2.cnf
(或者更改配置文件的路径位于不同的位置)。
接下来,我们需要编辑具有不同mysql端口(默认为3306)的新配置文件,pid和套接字而不是默认端口,并且还要将数据和日志文件夹指向之前创建的文件。
# cd /etc
# sed -i ‘s/3306/3307/g’ my2.cnf
# sed -i ‘s/mysqld.sock/mysqld2.sock/g’ my2.cnf
# sed -i ‘s/mysqld.pid/mysqld2.pid/g’ my2.cnf
# sed -i ‘s/var\/lib\/mysql/var\/lib\/mysql2/g’ my2.cnf
# sed -i ‘s/var\/log\/mysql/var\/log\/mysql2/g’ my2.cnf
最后我们需要初始化默认的dbs:
# mysql_install_db –user=mysql –datadir=/var/lib/mysql2/
最后,我们可以使用以下命令启动我们的新mysql实例:
# mysqld_safe – -defaults-file=/etc/my2.cnf &
我们可以使用以下方式连接到我们的新实例:
# mysql -S /var/run/mysqld/mysqld2.sock
或
# mysql -h 127.0.0.1 -P 3307
如果我们不再需要它,请停止:
# mysqladmin -S /var/run/mysqld/mysqld2.sock shutdown
参考网站:https://linuxinpakistan.com/start-multiple-instances-mysql-machine
答案 2 :(得分:1)
我在Windows 10
上采取的措施:
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini
复制到C:\ProgramData\MySQL\MySQL Server 8.0\my1.ini
my1.ini
并修改:
C:\ProgramData\MySQL\MySQL Server 8.0\Data
复制到C:\ProgramData\MySQL\MySQL Server 8.0\Data1
cmd
提示符下运行:(如有必要,具有管理员权限)C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld --install MySQL80-1 --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my1.ini"
如果一切顺利,您将看到:
Service successfully installed.
services.msc
,找到服务名称MySQL80-1
,右键单击它,然后单击Start
。如果一切顺利,您将看到Status
更改为Running
。
如果运行不正常,请打开xxx.err
中的C:\ProgramData\MySQL\MySQL Server 8.0\Data1
文件以查看原因。
如果您不再需要服务:
cmd
提示符下使用sc delete MySQL80-1
删除它,其中MySQL80-1
是您的服务名称。答案 3 :(得分:0)