怎么利用mysqld

64次阅读
没有评论

共计 5339 个字符,预计需要花费 14 分钟才能阅读完成。

这篇文章给大家分享的是有关怎么利用 mysqld_multi 配置单机多实例的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

环境:redhat6.5+mysql5.6.21
[root@linfytest2 bin]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.5 (Santiago)
[root@linfytest2 bin]# ./mysqld –version
./mysqld  Ver 5.6.21 for Linux on x86_64 (Source distribution)

mysqld_multi 的样例:
[root@linfytest2 bin]# ./mysqld_multi –example
# This is an example of a my.cnf file for mysqld_multi.
# Usually this file is located in home dir ~/.my.cnf or /etc/my.cnf
#
# SOME IMPORTANT NOTES FOLLOW:
#
# 1.COMMON USER
#
#   Make sure that the MySQL user, who is stopping the mysqld services, has
#   the same password to all MySQL servers being accessed by mysqld_multi.
#   This user needs to have the Shutdown_priv -privilege, but for security
#   reasons should have no other privileges. It is advised that you create a
#   common multi_admin user for all MySQL servers being controlled by
#   mysqld_multi. Here is an example how to do it:
#
#   GRANT SHUTDOWN ON *.* TO multi_admin@localhost IDENTIFIED BY password
#
#   You will need to apply the above to all MySQL servers that are being
#   controlled by mysqld_multi. multi_admin will shutdown the servers
#   using mysqladmin -binary, when mysqld_multi stop is being called.
#
# 2.PID-FILE
#
#   If you are using mysqld_safe to start mysqld, make sure that every
#   MySQL server has a separate pid-file. In order to use mysqld_safe
#   via mysqld_multi, you need to use two options:
#
#   mysqld=/path/to/mysqld_safe
#   ledir=/path/to/mysqld-binary/
#
#   ledir (library executable directory), is an option that only mysqld_safe
#   accepts, so you will get an error if you try to pass it to mysqld directly.
#   For this reason you might want to use the above options within [mysqld#]
#   group directly.
#
# 3.DATA DIRECTORY
#
#   It is NOT advised to run many MySQL servers within the same data directory.
#   You can do so, but please make sure to understand and deal with the
#   underlying caveats. In short they are:
#   – Speed penalty
#   – Risk of table/data corruption
#   – Data synchronising problems between the running servers
#   – Heavily media (disk) bound
#   – Relies on the system (external) file locking
#   – Is not applicable with all table types. (Such as InnoDB)
#     Trying so will end up with undesirable results.
#
# 4.TCP/IP Port
#
#   Every server requires one and it must be unique.
#
# 5.[mysqld#] Groups
#
#   In the example below the first and the fifth mysqld group was
#   intentionally left out. You may have gaps in the config file. This
#   gives you more flexibility.
#
# 6.MySQL Server User
#
#   You can pass the user=… option inside [mysqld#] groups. This
#   can be very handy in some cases, but then you need to run mysqld_multi
#   as UNIX root.
#
# 7.A Start-up Manage Script for mysqld_multi
#
#   In the recent MySQL distributions you can find a file called
#   mysqld_multi.server.sh. It is a wrapper for mysqld_multi. This can
#   be used to start and stop multiple servers during boot and shutdown.
#
#   You can place the file in /etc/init.d/mysqld_multi.server.sh and
#   make the needed symbolic links to it from various run levels
#   (as per Linux/Unix standard). You may even replace the
#   /etc/init.d/mysql.server script with it.
#
#   Before using, you must create a my.cnf file either in /usr/local/mysql/my.cnf
#   or /root/.my.cnf and add the [mysqld_multi] and [mysqld#] groups.
#
#   The script can be found from support-files/mysqld_multi.server.sh
#   in MySQL distribution. (Verify the script before using)
#

[mysqld_multi]
mysqld     = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user       = multi_admin
password   = my_password

[mysqld2]
socket     = /tmp/mysql.sock2
port       = 3307
pid-file   = /usr/local/mysql/data2/hostname.pid2
datadir    = /usr/local/mysql/data2
language   = /usr/local/mysql/share/mysql/english
user       = unix_user1

[mysqld3]
mysqld     = /path/to/mysqld_safe
ledir      = /path/to/mysqld-binary/
mysqladmin = /path/to/mysqladmin
socket     = /tmp/mysql.sock3
port       = 3308
pid-file   = /usr/local/mysql/data3/hostname.pid3
datadir    = /usr/local/mysql/data3
language   = /usr/local/mysql/share/mysql/swedish
user       = unix_user2

[mysqld4]
socket     = /tmp/mysql.sock4
port       = 3309
pid-file   = /usr/local/mysql/data4/hostname.pid4
datadir    = /usr/local/mysql/data4
language   = /usr/local/mysql/share/mysql/estonia
user       = unix_user3
 
[mysqld6]
socket     = /tmp/mysql.sock6
port       = 3311
pid-file   = /usr/local/mysql/data6/hostname.pid6
datadir    = /usr/local/mysql/data6
language   = /usr/local/mysql/share/mysql/japanese
user       = unix_user4

1、分别创建端口为 3306 和 3307 的数据库
 

2、创建参数文件 my_multi.cnf
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
log = /var/lib/mysql/mysqld_multi.log
user = multi_admin
password = 111111

[mysqld6]
datadir = /var/lib/mysql3306
pid-file = /var/lib/mysql3306/mysqld.pid
socket = /tmp/mysql3306.sock
port = 3306

[mysqld7]
datadir = /var/lib/mysql3307
socket = /tmp/mysql3307.sock
pid-file = /var/lib/mysql3307/mysqld.pid
port = 3307

3、启动
[root@linfytest2 bin]# ./mysqld_multi –defaults-extra-file=/etc/my_multi.cnf report
Reporting MySQL servers
MySQL server from group: mysqld6 is not running
MySQL server from group: mysqld7 is not running

[root@linfytest2 bin]# ./mysqld_multi –defaults-extra-file=/etc/my_multi.cnf start
[root@linfytest2 bin]# ./mysqld_multi –defaults-extra-file=/etc/my_multi.cnf report
Reporting MySQL servers
MySQL server from group: mysqld6 is running
MySQL server from group: mysqld7 is running

[root@linfytest2 bin]# netstat -tunlp|grep mysql
tcp        0      0 :::3306                     :::*                        LISTEN      17982/mysqld        
tcp        0      0 :::3307                     :::*                        LISTEN      17983/mysqld

4、停止
[root@linfytest2 bin]# ./mysqld_multi –defaults-extra-file=/etc/my_multi.cnf stop
[root@linfytest2 bin]# ./mysqld_multi –defaults-extra-file=/etc/my_multi.cnf report
Reporting MySQL servers
MySQL server from group: mysqld6 is not running
MySQL server from group: mysqld7 is not running

感谢各位的阅读!关于“怎么利用 mysqld_multi 配置单机多实例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-27发表,共计5339字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)