如何在linux上启动多个mysql实例 (linux 启动多个mysql)

如何在Linux上启动多个MySQL实例

MySQL是一种流行的数据库管理系统,被广泛使用于Web应用程序等领域。在某些情况下,您可能需要在同一台Linux机器上同时运行多个MySQL实例。此时,本文将详细介绍如何在Linux上启动多个MySQL实例,并为您提供一些注意事项和常见问题解答。

为什么要在同一台机器上运行多个MySQL实例?

在以下情况下,您可能需要在同一台Linux机器上同时运行多个MySQL实例:

1. 分离测试环境和生产环境。如果您需要测试更新或配置更改,应该使用测试实例来确保这些更改不影响正在运行的主实例。这可以防止不良影响和数据丢失。

2. 业务扩展。在某些情况下,单个MySQL实例可能无法满足您的业务需求。如果您需要用于新业务的单独模式或参数,可以通过建立单独的MySQL实例来实现。

3. 隔离安全。通过使用单独的MySQL实例,可以将数据隔离到不同的环境中,从而提高安全性。

如果您需要隔离数据,测试变更或扩展业务,那么在同一台Linux机器上运行多个MySQL实例可能是有意义的。

如何在Linux上安装和启动MySQL?

在讨论如何运行多个MySQL实例之前,首先需要确保在Linux上正确安装和启动单个MySQL实例。

以下是在Linux上安装和启动MySQL所需的步骤:

1. 安装MySQL服务器:在Linux系统中使用包管理器或从MySQL官网下载二进制文件进行安装。

2. 启动MySQL服务器:运行以下命令启动MySQL服务器:

sudo systemctl start mysql

3. 测试MySQL服务器:运行以下命令测试您是否可以访问MySQL服务器:

mysql -u root -p

如果您未遇到任何错误,请继续下一步。如果您无法访问MySQL服务器,请确保MySQL服务器已正确安装并正在运行,并检查MySQL服务器的日志文件以获取更多信息。

如何启动多个MySQL实例?

当您已经安装并成功测试了单个MySQL实例后,可以考虑在同一台Linux机器上启动多个MySQL实例。

以下是启动多个MySQL实例的步骤:

1. 复制MySQL配置文件:在Linux系统中,MySQL的配置文件位于/etc/mysql目录中。要启动另一个MySQL实例,必须复制此目录并使用复制的目录来启动新实例。

sudo cp -R /etc/mysql /etc/mysql2

2. 更改复制的配置文件名:以下命令将新配置文件的名称更改为/etc/mysql2/my.cnf:

sudo mv /etc/mysql2/mysql.cnf /etc/mysql2/my.cnf

3. 更改复制的配置文件:编辑/etc/mysql2/my.cnf文件,找到datadir,pidfile和socket配置并将其更改为新实例的路径和名称。

datadir = /var/lib/mysql2

pid-file = /var/run/mysqld/mysqld2.pid

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

4. 启动新MySQL实例:使用以下命令启动新的MySQL实例:

sudo mysqld –defaults-file=/etc/mysql2/my.cnf –user=mysql –datadir=/var/lib/mysql2 –socket=/var/run/mysqld/mysqld2.sock –pid-file=/var/run/mysqld/mysqld2.pid –port=3307 –bind-address=127.0.0.1

如果一切正常,您现在应该可以使用新MySQL实例进行连接。您可以在MySQL提示符下运行以下命令以检查新实例的版本:

mysql -S /var/run/mysqld/mysqld2.sock -V

常见问题解答

在该过程中,可能会遇到某些错误或问题。以下是一些常见问题及其解决方案:

Q1. 我无法启动第二个MySQL实例,提示“Can’t open the mysql.plugin table”错误。

A1. 您需要在第二个MySQL实例中创建一个新的空数据库,如下所示:

sudo mkdir /var/lib/mysql2

sudo chown -R mysql:mysql /var/lib/mysql2

sudo chmod 700 /var/lib/mysql2

sudo mysqld –user=mysql –datadir=/var/lib/mysql2 –initialize –explicit_defaults_for_timestamp –basedir=/usr –skip-name-resolve –pid-file=/var/run/mysqld/mysqld2.pid

Q2. 我无法连接到新实例,提示“Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld2.sock’ ”错误。

A2. 这通常是由于未正确指定socket文件路径引起的。请检查my.cnf文件并确保已正确指定socket文件路径。

Q3. 新实例无法启动,并提示错误“Can’t find file: ‘/var/lib/mysql2/mysql/plugin.frm’ (errno: 13 “Permission denied”)”。

A3. 这通常是由于文件访问权限不正确引起的。请确保MySQL用户对新实例的datadir和日志文件具有适当的写入权限。

在同一台Linux机器上运行多个MySQL实例需要一些额外的工作,但这对于隔离数据和测试更改非常有用。在本文中,我们介绍了如何在Linux上安装和启动单个MySQL实例,并提供了一些启动多个MySQL实例时的注意事项和解决方案。我们希望这将有助于您在Linux上启动多个MySQL实例并成功运行它们。

相关问题拓展阅读:

如何在linux下安装mysql数据库并配置

linux安装mysql服务分两种安装方法:

  ①源码安装,优点是安装包比较小,只有十多M,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错;

  ②使用官方编译好的二进制文件安装,优点是安装速度快,安装步骤简单,缺明哗缺点是安装包很大,300M左右。以下介绍linux使用官方编译好的二进制包安装mysql。

  工具/原料

  mysql-5.6.17-linux-glibc2.5-i686.tar.gz

  mysql-5.6.17-linux-glibc2.5-x86_64.tar.gz

  linux系统,32位、64位均可

  方法/步骤

  到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux – Generic (glibc 2.5) (x86, 64-bit),32位系统下载Linux – Generic (glibc 2.5) (x86, 32-bit)

 伏行 linux系统安装mysql

  linux系统安装mysql

  解压32位安装包:

  进入安装包所在目录,执行命令:tar mysql-5.6.17-linux-glibc2.5-i686.tar.gz

  linux系统安装mysql

  复制解压后的mysql目录到系统的本地软件目录:

  执行命令:cp mysql-5.6.17-linux-glibc2.5-i686 /usr/local/mysql -r

  注意:目录结尾不要加/

  linux系统安装mysql

  添加系统mysql组和mysql用户:

  执行命令:groupadd mysql和useradd -r -g mysql mysql

  linux系统安装mysql

  linux系统安装mysql

  安装数据库:

  进入安装mysql软件目录:执行命令 cd /usr/local/mysql

  修改当前目录拥有者为mysql用户:执行命令 chown -R mysql:mysql ./

  安装数据库:执行命令 ./scripts/mysql_install_db –user=mysql

  修改当前目录拥有者为root用户:执行命令 chown -R root:root ./

  修改当前data目录拥有者为mysql用户:执行命令 chown -R mysql:mysql data

  到此数据库安装完毕

  linux系统安装mysql

  启动mysql服务和添加开机启动mysql服务:

  添加开机启动:执行命令cp support-files/mysql.server /etc/init.d/mysql,把启动脚本放到开机初始化目录

  启动mysql服务:执行命令service mysql start

  执行命令:ps -ef|grep mysql 看到mysql服务说明启动成功,如图

  linux系统安装mysql

  修改mysql的root用户密码,root初槐纳始密码为空的:

  执行命令:./bin/mysqladmin -u root password ‘密码’

  linux系统安装mysql

  8

  把mysql客户端放到默认路径:

  ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

  注意:建议使用软链过去,不要直接包文件复制,便于系统安装多个版本的mysql

在linux下安装mysql数据库并配置的流程比较繁琐,需要耐心调试,具体方法和步骤如下:

1.查找以前是否安装有mysql,使用下面命令:

rpm -qa|grep -i mysql

如果显示有如下包则说明已安装mysql

mysql-4.1.12-3.RHEL4.1

mysqlclient10-3.23.58-4.RHEL4.1

2.如果已安装,则需要删除已安装的数据库,使用以下命令来删除数据库

删除命令:rpm -e –nodeps 包名

( rpm -ev mysql-4.1.12-3.RHEL4.1 )

删除老版本mysql的开发头文件和库

命令:rm -fr /usr/lib/mysql

rm -fr /usr/include/mysql

注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用世敬后就手工删除

rm -f /etc/my.cnf

rm -fr /var/lib/mysql

3.下载mysql的rpm包

可以通过wget下载具体的地址因为不能用链接请大家去官网去找

(1)MySQL-server-5.6.10-1.rhel5.x86_64.rpm:MySQL服务器;

(2)MySQL-client-5.6.10-1.rhel5.x86_64.rpm:MySQL客户端;

(3)MySQL-devel-5.6.10-1.rhel5.x86_64.rpm:Mysql开发依赖包。

下载后放到Liunx服务器中。

4.安装MySQL Server的rpm包

rpm -ivh MySQL-server-5.6.21-1.linux_glibc2.5.x86_64.rpm

安装完成后会生成root用户的随机密码,请使用“cat /root/.mysql_secret”或类似命令进行查看。

5.安装MySQL客户端

rpm -ivh MySQL-client-5.6.21-1.linux_glibc2.5.x86_64.rpm

6.安装MySQL开发依赖包

rpm -ivh MySQL-devel-5.6.21-1.linux_glibc2.5.x86_64.rpm

7.启动msyql

安装完成后mysql是没有启动的,运行mysql命令会提示如下错误:

ERROR 2023 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

可使用如下命令启动MySQL:

service mysql start

或者使用如下命令:

/etc/init.d/mysql start

可使用SET PASSWORD命令修改root用户的密码,参考如下:SET PASSWORD = PASSWORD(‘root123456’);

8.登录MySQL

使用mysql命令登录MySQL服务器,运行MySQL的命令时,会提示需要设置root用户密码。

9.设置开机自启动

/etc/init.d/mysql start

设置完成后重启系统,使用natstat –nat命令可看到MySQL的3306端口。搜喊慎

10.至此已经安装好了mysql数据库,当渗宴然现在我们的数据库还不支持远程连接,远程连接会出现以下代码:1130,ERROR 1130: Host 192.168.0.10 is not allowed to connect to this MySQL server,可以通过以下以下来解决。

11.改表法:在本机登入mysql后,更改“mysql”数据库里的“user”表里的“host”项,从”localhost”改为’%’。

mysql>

mysql>use mysql;

mysql>select ‘host’ from user where user=’root

12.到此为止,mysql数据库在linux中安装完毕。

关于linux 启动多个mysql的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 如何在linux上启动多个mysql实例 (linux 启动多个mysql)