-- 编辑 -- 在下面的答案中完成设置。-- 编辑 --
当我按照一篇关于如何在 Linux 上设置额外的 MariaDB 或 Mysql 的文章(下面的链接)操作时,它就起作用了。但是,我不喜欢“mysql1”和“mysql2”作为实例名称。但当我只更改代码的这一方面时,运行启动命令时服务器不会安装。
为了便于比较,我在下面列出了两种设置:一种是可以工作的设置,其中创建了 2 个实例,另一种最终不起作用。我非常想知道如何让不起作用的那个起作用。非常感谢您的帮助!
- 1)Datadir(有效的设置):
sudo mkdir -p -v /var/lib/mysql{1..2}
sudo chown mysql:mysql -v /var/lib/mysql{1..2}
- 1)Datadir(最终不起作用的设置):
sudo mkdir -p -v /var/lib/mysqlTest
sudo chown mysql:mysql -v /var/lib/mysqlTest
- 2)套接字目录(有效的设置):
sudo mkdir -p -v /usr/local/mysql/mdb{1..2}
sudo chown -v -R mysql:mysql /usr/local/mysql/mdb{1..2}
- 2)套接字目录(最终不起作用的设置):
sudo mkdir -p -v /usr/local/mysql/mdbTest
sudo chown -v -R mysql:mysql /usr/local/mysql/mdbTest
- 3)日志目录(有效的设置):
sudo mkdir -p -v /var/log/mysql{1..2}
sudo chown -v -R mysql:mysql /var/log/mysql{1..2}
- 3)日志目录(最终不起作用的设置):
sudo mkdir -p -v /var/log/mysqlTest
sudo chown -v -R mysql:mysql /var/log/mysqlTest
- 4)我创建以下文件
“mysqld_multi_cls.cnf”
位于:/etc/mysql/
- 5)内容(有效的设置):
# Configuration Settings for mysqld_multi , as well as separate instances.
#
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
[mysqld1]
socket = /tmp/mysql.sock1
port = 3307
pid-file = /usr/local/mysql/mdb1/ansible-host1.pid1
datadir = /var/lib/mysql1
log-error = /var/log/mysql1/error.log
log_bin = /var/lib/mysql1/mdb1-mysql-bin.log
server-id = 1
expire_logs_days = 72
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
binlog_format = mixed
gtid_strict_mode = 1
[mysqld2]
socket = /tmp/mysql.sock2
port = 3308
pid-file = /usr/local/mysql/mdb2/ansible-host1.pid2
datadir = /var/lib/mysql2
log-error = /var/log/mysql2/error.log
log-bin = /var/lib/mysql2/mdb2-mysql-bin.log
server-id = 2
expire_logs_days = 64
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
binlog_format = mixed
gtid_strict_mode = 1
- 5)内容(最终不起作用的设置):
# Configuration Settings for mysqld_multi , as well as separate instances.
#
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
[mysqlTest]
socket = /tmp/mysql.sock3
port = 3309
pid-file = /usr/local/mysql/mdbTest/ansible-host1.pid3
datadir = /var/lib/mysqlTest
log-error = /var/log/mysqlTest/error.log
log_bin = /var/lib/mysqlTest/mdbTest-mysql-bin.log
server-id = 3
expire_logs_days = 72
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
innodb_flush_method = O_DIRECT
binlog_format = mixed
gtid_strict_mode = 1
-6)现在我们启动服务器:
sudo mysqld_multi --defaults-file=/etc/mysql/mysqld_multi_cls.cnf --log=/etc/mysql/multi_ins.log start
- 如果在第一种情况下完成,数据库现在正在安装,每个人都很高兴。
- 但是,如果在第二种庄园中,我只更改了名称并创建了一个(额外的)实例,什么也不会发生。
我错过了什么?
欢呼并非常感谢!
以下是 Michael Amadi 在 Linkedin 上的文章: https: //www.linkedin.com/pulse/running-multiple-instances-mariadb-single-server-different-amadi
好吧,让我们来回答这个坏男孩。
您无法更改额外的 mysql 或 mariadb 实例的名称。它要么是 mysql#,要么是 mariadb#。原因是 mariadb 和 mysql 通过其 GNR(数字 ($i))循环使用。但我们可以使用 phpMyAdmin 中的“verbose”选项为服务器实例指定不同的名称。
在这个例子中,我们将创建 3 个实例。我们可以将第一个实例设为 #1。但这可能会给 phpmyadmin 带来一些麻烦。因此,我们将第一个实例设为 #2。以下是具体操作方法。:首先,我们需要为新的 mariadb 或 mysql 实例创建一些文件夹。
1:创建目录:
2:设置权限:
3:我们将为 mariadb/mysql 创建一个配置文件mysqld_multi_cls.cnf。我们可以在打开文件的同时执行此操作。
4:添加以下代码:
5:在终端中,启动新的服务器实例。第一次需要一段时间,因为 mariadbd-multi 将安装它们:
6:然后检查它们是否运行:
或者你可以使用:
7:这些实例不会在您的计算机启动时启动。我没有找到一种干净利落的方法来通过 mariadbd/mysql 本身完成此操作。但我们可以为 Linux 提供一个脚本,在启动后运行以启动实例。我们可以使用文件 /etc/rc.local 执行此操作。您可能无法在资源管理器中看到此文件,但我们可以通过终端打开它:
在“exit 0”之前/上方添加以下内容:
按“CTRL S”保存,按“CTRL X”关闭。
设置新实例 我们希望服务器安全。这意味着我们需要删除 root 帐户,因为这是“黑客”首先会尝试的。将其重命名为“admin”也不是所谓的“高级安全”。但如果您愿意,可以跳过此部分。
1:在终端中:
2:让我们检查端口号以确保我们打开了正确的实例:
3:创建拥有完全权限的用户当然不是一件容易的事。但无论如何,我们还是创建一个吧:D
4:授予“所有权限”将赋予其创建、删除、写入、读取和所有权限。“带大选项”允许此新用户创建/授予其他用户某些权限。
5:通过系统刷新新设置,然后关闭。
6:现在我们再次进入 mariadb 实例,但这次使用我们的新超级用户。并在要求时输入超级复杂密码。
7:让我们试用一下这个帐户并创建一个数据库:
8:成功了吗?如果成功,让我们继续并删除 root 用户。
9:最好有一个可以关闭服务器的单独帐户。让我们创建这个帐户。
对其他实例重复此操作几次。
设置主服务器: 1:我们可以对主服务器执行完全相同的操作。创建一个新帐户并删除 root。但为了方便,我们来做一下不同的操作。让我们重命名它并更改密码。
2:现在我们再次以新的帐户名登录,并像以前一样创建multi_admin:
3:我们为这个主服务器设置了一些日志记录:
重启 现在可能是重启系统的好时机。当你回来时,看看服务器是否正在运行。
记住 multi_admin。这是关闭其中一个实例的方法。
使用之前的报告命令您可以检查它是否有效。
现在将 mariadb 或 mysql 实例添加到 phpMyAdmin:
当然,您现在知道如何通过浏览器进入 phpMyAdmin,但是为了安全起见,这里给出地址:
1:我们需要更改“config.inc.php”文件。(我喜欢用 Geany 编辑器来做这个)
您看到以下内容了吗?:
2:将以下内容粘贴在上面。
让我们进行一次干净、快乐的重启。
现在,您可以使用 Mysql/MariaDB 帐户登录 phpMyAdmin。只需记住在下拉列表中填写所选服务器的正确凭据即可。
祝你有美好的一天!