mac下安裝多個mysql實例


多實例安裝  

  首先上mysql官網https://dev.mysql.com/downloads/mysql/下載最新版的mysql,由於要安裝多個mysql實例,這里我選擇壓縮包版本的mysql手動安裝。

    下載macOS 10.14 (x86, 64-bit), TAR這個版本后,運行tar -xvf命令進行解壓,這里我解壓到~/software/mysql-bin/mysql

    如果需要的話,可以將mysql目錄設置軟鏈接到/usr/local/mysql,類似於這樣 ln -s ~/software/mysql-bin/mysql /usr/local/mysql,這一步需要root權限

    接下來,可以根據需要創建的mysql實例個數來創建mysql數據目錄,這里我要創建兩個實例,所以我新建了兩個目錄~/software/mysql-cluster/master和~/software/mysql-cluster/slave

   然后將mysql執行目錄配置到環境變量中

   執行以下兩條初始化命令,加上--initialize-insecure參數則生成的root用戶沒有密碼,否則mysql初始化時隨機生成一個密碼並輸入到日志文件中

    mysqld --datadir=~/software/mysql-cluster/mysql-master/data  --initialize --initialize-insecure

    mysqld --datadir=~/software/mysql-cluster/mysql-slave/data  --initialize --initialize-insecure   

    由於要啟動多個實例,需要用到mysqld_multi命令,多個數據庫實例公用一個配置文件,如下所示

[mysqld_multi]
#mysqld     = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user       = root
password   = root



[mysqld3307]
server-id=3307
port=3307
log-bin=mysql-bin

log-error=~/software/mysql-cluster/mysql-master/mysqld.log
tmpdir=~/software/mysql-cluster/mysql-master
slow_query_log=on
slow_query_log_file =~/software/mysql-cluster/mysql-master/mysql-slow.log
long_query_time=1

socket=~/software/mysql-cluster/mysql-master/mysql_3307.sock
pid-file=~/software/mysql-cluster/mysql-master/mysql.pid

basedir=~/software/mysql-cluster/mysql-master
datadir=~/software/mysql-cluster/mysql-master/data

[mysqld3308]
server-id=3308
port=3308
log-bin=mysql-bin

log-error=~/software/mysql-cluster/mysql-slave/mysqld.log
tmpdir=~/software/mysql-cluster/mysql-slave

slow_query_log=on
slow_query_log_file =~/software/mysql-cluster/mysql-slave/mysql-slow.log
long_query_time=1

socket=~/software/mysql-cluster/mysql-slave/mysql_3308.sock
pid-file=~/software/mysql-cluster/mysql-slave/mysql.pid


basedir=~/software/mysql-cluster/mysql-slave
datadir=~/software/mysql-cluster/mysql-slave/data

read_only=1


[mysqld]
character_set_server=utf8

 接下來,運行mysqld_multi --default-files=cluster.conf start即可啟動所有mysql實例

配置主從復制

   連接上主mysql,創建用於復制的用戶並賦予復制權限:

mysql> create user 'copy'@'%' identified by 'copy';
Query OK, 0 rows affected (0.07 sec)

mysql> grant replication slave on *.* to 'copy'@'%';
Query OK, 0 rows affected (0.02 sec)

   執行show master status命令

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 |     1166 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

    連接從mysql,設置master信息並啟動slave:

mysql> change master to master_host='127.0.0.1', master_port=3307,master_user='copy',master_password='copy',master_log_file='mysql-bin.000002',master_log_pos=1166;
Query OK, 0 rows affected, 1 warning (0.10 sec)

mysql> start slave;
Query OK, 0 rows affected (0.01 sec)

   執行show slave status命令,查看slave狀態,發現Slave_IO_State是Waiting for master to send event,Slave_IO_Running和Slave_SQL_Running狀態是YES就說明設置成功

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 127.0.0.1
                  Master_User: copy
                  Master_Port: 3307
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000002
          Read_Master_Log_Pos: 1166
               Relay_Log_File: 192-relay-bin.000002
                Relay_Log_Pos: 322
        Relay_Master_Log_File: mysql-bin.000002
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM