快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

MySQL单机多实例分享

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

通过Docker可以轻松实现单机多实例。这里主要是分享使用内置工具mysqld_multi和两个坑的过程。希望本文能对大家有所帮助。

1.安装MySQL

系统:Ubuntu 16.04LTS(xenial)
版本:Percorna Server 5.7.21-20
安装:官方网站教程

2.mysqld_multi配置文件

创建一个新文件/etc/mysql/multi_server.cnf

[mysqld_multi]
#如果MySQL服务不是通过mysqld_safe启动的,则应将其注释掉
#mysqld =/usr/bin/mysqld_safe
mysqladmin =/usr/bin/mysqladmin
用户= multi_admin
密码= 123456
[mysqld1]
用户= mysql
pid-file =/var/run/mysqld/mysqld.pid
套接字=/var/run/mysqld/mysqld.sock
端口= 3306
basedir =/usr
datadir =/var/lib/mysql
tmpdir =/tmp
[mysqld2]
用户= mysql
pid-file = http://www.php.cn/var/run/mysqld/mysql。 pid2
套接字= http://www.php.cn/var/run/mysqld/mysqld.sock2
端口= 3307
basedir =/usr
datadir =/var/lib/mysql23。启动服务

查看示例并运行
mysqld_multi–defaults-file = http://www.php.cn/etc/mysql/multi_server.cnf报告

启动服务
mysqld_multi–defaults-file = http://www.php.cn/etc/mysql/multi_server.cn f start

因为通常,我们已经安装了第一个,并且还设置了root用户,因此不太可能出现问题。
mysql2可能出现的问题:

严重错误:试图在[mysqld2]组下启动mysqld,但未找到或无法创建数据目录。使用的数据目录:/var/lib/mysql2

MySQL5.7新添加的实例的命令行如下

mysqld–datadir = http://www.php.cn/var/lib/mysql2–initialize–initialize-insecure…
官方网站链接

查看/usr/bin/mysqld_multi 343行脚本上下

打印” \\\\ n \\\\ n在$ datadir中安装新数据库\\\\ n \\\\ n \

$ install_cmd = \ quot;/usr/bin/mysqld \ quot ;;

$ install_cmd。 =”-初始化”;

$ install_cmd。 = \”-user = mysql \” ;;

$ install_cmd。 = \\-datadir = $ datadir \ quot ;;

乍看起来还不错,实际上是从命令行执行的

其中mysqld

获得的结果

/usr/sbin/mysqld

因此,修改此脚本后,它将正常启动。
当然,如果仍然无法使用,则可能必须考虑用户权限。
如果使用Ubuntu,还可能还要检查apparmor的权限是否受到限制。

如果以此方式启动,则mysql2实例将为root用户随机创建一个随机密码,这将阻止后续的客户端登录到该实例。 ,仅通过error_log
此时,您还需要修改脚本,在参数中添加参数”-initialize-insecure \”。在脚本中,请注意参数之间的空格。
建立连接后,再次执行

mysql \ gt; ALTER USER” root” @” localhost”由” new_password”标识; 4.后续操作

向root用户授予权限

授予所有特权。以root @”%”标识为\ quot; 123456 \ quot ;;
刷新特权;

在每个实例中向mysqld_multi管理用户multi_admin添加关闭权限

GRANT SHUTDOWN ON。 TO multi_admin @ localhost通过”密码”标识;

如果通过,则无法有效关闭实例。 mysqladmin直接关闭

如果实例由于操作不当而无法启动,则可以通过命令

tail-30/var/log/mysql/error.log

查看错误日志。常见问题解答

2018-02-22T02:02:28.227868Z 0 [错误]/usr/sbin/mysqld:无法创建/写入文件”/var/run/mysqld/mysql.pid3″(错误代码:13-权限被拒绝)
2018-02-22T02:02:28.227889Z 0 [错误]无法启动服务器:无法创建PID文件:权限被拒绝

这时,您可以看到/var

-rw-r–r–1 root root 0 Feb 22 02:01 mysqld.pid
-/运行/mysqld文件文件夹如下,删除所有文件,然后重新启动。 rw-r–r-1根root 0 Feb 21 15:35 mysqld.pid2
srwxrwxrwx 1 mysql mysql 0 Feb 22 02:02 mysqld.sock =
srwxrwxrwx 1 mysql mysql 0 Feb 22 02:02 mysqld.sock2 =
-rw——-1 mysql mysql 6 Feb 22 02:02 mysqld.sock2.lock
srwxrwxrwx 1 mysql mysql 0 Feb 22 02:02 mysqld.sock3 =
-rw——-1个mysql mysql 6 Feb 22 02:02 mysqld.sock3.lock
-rw——-1个mysql mysql 6 Feb 22 02:02 mysqld.sock.lock
-rw-r–r–1 root root 0 Feb 22 02:01 mysql.pid2
-rw-r–r–1根root 0 Feb 22 02:01 mysql.pid3

相关建议:

MySQL独立多实例解决方案部署

MySQL独立多实例配置

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1922638