• ADADADADAD

    怎么利用mysqld_multi配置单机多实例[ mysql数据库 ]

    mysql数据库 时间:2024-11-26 22:17:31

    作者:文/会员上传

    简介:

    环境:redhat6.5+mysql5.6.21[root@linfytest2 bin]# cat /etc/redhat-releaseRed Hat Enterprise Linux Server release 6.5 (Santiago)[root@linfytest2 bin]# ./mysqld --v

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    环境: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
    tcp0 0 :::3306 :::*LISTEN 17982/mysqld
    tcp0 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配置单机多实例.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: multimysqld