跳至內容
阿里BaBa電腦筆記
使用者工具
登入
網站工具
工具
顯示頁面
舊版
反向連結
最近更新
多媒體管理器
網站地圖
登入
最近更新
多媒體管理器
網站地圖
足跡:
database:mysql:multiple
本頁是唯讀的,您可以看到原始碼,但不能更動它。您如果覺得它不應被鎖上,請詢問管理員。
======方法一====== 修改/etc/init.d/mysql 啟動檔案及/etc/my.cnf mysql 組態設定檔。 - 建立第二個執行個體資料儲存的目錄<code>#mkdir -p /var/lib/mysql3307</code> - 修改該執行個體的權限<code>chown mysql:mysql /var/lib/mysql3307/</code> - 修改mysql設定檔,通常只要增加或修改 port,datadir,socket在這個區段[mysqld]<code>cp -p /etc/my.cnf /etc/my3307.cnf</code><code>vim /etc/my3307.cnf</code><code> ~略~ port = 3307 datadir = /var/lib/mysql3307/ socket = /var/lib/mysql3307/mysql.sock ~略~ </code> - 修改重要的啟動檔。本範例的啟動檔是截取Mysql-5.6.x版本/etc/init.d/mysql<code>cp -p /etc/init.d/mysql </code>或若是原本不是Mysql-5.6.x的版本,可以到[[http://dev.mysql.com/downloads/mysql/|Mysql官網下載]],並擷取其設定檔<code>#mkdir /tmp/test;cd /tmp/test/;rpm2cpio MySQL-server-5.6.x|cpio -idvc #ls -l /tmp/test/etc/init.d/mysql #cp -p /tmp/test/etc/init.d/mysql /etc/init.d/mysql3307 </code> * 約在138列位置後面插入port 相關參數<code>--port=*) port=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;</code> * 約在215列位置修改設定檔路徑,換成/etc/my3307.cnf<code>conf=/etc/my3307.cnf</code> * 約在257列位置增加 -c /etc/my3307.cnf 相關參數<code>parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server -c /etc/my3307.cnf`</code> * 約在284列位置增加 --port="$port" , --socket="$datadir"/mysq.sock相關參數<code>$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" --port="$port" --socket="$datadir"/mysq.sock $other_args >/dev/null 2>&1 &</code> - 為/var/lib/mysql3307/安裝預設mysql資料庫<code>mysql_install_db --user=mysql --defaults-file=/etc/my3307.cnf --datadir=/var/lib/mysql3307/</code> - 啟動mysql3307 試試看<code>/etc/init.d/mysql3307 start Starting MySQL.. SUCCESS! </code> - 連接Mysql3307試試看。因為多個執行個體(multiple instances)通常是以port ,及socket來區分,因此mysql client在連接時,要指定 port及socket參數<code>mysql -uroot -P3307 -p -h127.0.0.1 -S /var/lib/mysql3307/</code><code>-u 帳號 , -h 連接該資料庫的IP或hostname , -S socket位置 , -P port Number,-p 密碼</code> ======方法二 利用mysqld_multi工具====== 方法一是多個設定檔及多個執行檔方式,來建立多個執行個體,像是<code>/etc/init.d/mysql3307 -> /etc/my3307.cnf /etc/init.d/mysql3306 -> /etc/my3306.cnf </code> 但是,每次修改增加或修改設定檔是很麻煩,因此貼心的Mysql 便設計出mysqld_multi工具,只要單一啟動檔及單依設定檔就可以產生多個執行個體 - 建立兩個執行個體資料儲存的目錄 /mydqn /mydb2<code>#mkdir /mydb;mkdir /mydb2</code> - 修改該執行個體的權限<code>chown mysql:mysql /mydb;chown mysql:mysql /mydb2</code> - 為 /mydb , /mydb2 建立 mysql DB 基本資料<code>mysql_install_db --user=mysql --defaults-file=/etc/my2.cnf --datadir=/mydb/</code><code>mysql_install_db --user=mysql --defaults-file=/etc/my2.cnf --datadir=/mydb2/</code> - 除了原有/etc/my.cnf以外,也可配置另一個設定檔/etc/my2.cnf<code> [mysqld_multi] mysqld = /usr/bin/mysqld_safe mysqladmin = /usr/bin/mysqladmin #user = root #password = qwedcxza [mysqld3308] # GENERAL # user = mysql default_storage_engine = InnoDB port = 3308 socket = /mydb/mysql3308.sock pid_file = /mydb/mysql3308.pid # MyISAM # key_buffer_size = 16M myisam_recover = FORCE,BACKUP # SAFETY # max_allowed_packet = 16M max_connect_errors = 1000000 skip_name_resolve innodb = FORCE # DATA STORAGE # datadir = /mydb/ [mysqld3309] # GENERAL # user = mysql default_storage_engine = InnoDB port = 3309 socket = /mydb/mysql3309.sock pid_file = /mydb/mysql3309.pid # MyISAM # key_buffer_size = 16M myisam_recover = FORCE,BACKUP # SAFETY # max_allowed_packet = 16M max_connect_errors = 1000000 skip_name_resolve innodb = FORCE # DATA STORAGE # datadir = /mydb2/ </code> - 啟動 屬於/mydb 及 port=3308 ,/mydb/mysql3308.sock<code>mysqld_multi --defaults-file=/etc/my2.cnf start 3308</code> - 啟動 屬於/mydb2 及 port=3309 ,/mydb/mysql3309.sock<code>mysqld_multi --defaults-file=/etc/my2.cnf start 3309</code> - 測試。 port=3308 ,socket=/mydb/mysql3308.sock 登入資料庫<code>mysql -uroot -P3308 -p -S /mydb/mysql3308.sock mysql -e "show tables"</code> - 測試 。 port=3309 ,socket=/mydb/mysql3309.sock 登入資料庫<code>mysql -uroot -P3309 -p -S /mydb/mysql3309.sock mysql -e "show tables"</code> ======參考資料====== * [[http://opensourcedbms.com/dbms/running-multiple-mysql-5-6-instances-on-one-server-in-centos-6rhel-6fedora/|Running Multiple MySQL 5.6 Instances on one server in CentOS 6/RHEL 6/Fedora]] * [[http://rritw.com/a/shujuku/Mysql/20131119/444192.html|rhel6下,mysql5.6.14 多實例配置]] * [[http://www.loliman3000.com/tech/2fe16d6c02408d34f4c93167.php|在同一台機器上運行多個 MySQL 服務]]
database/mysql/multiple.txt
· 上一次變更: 2013/11/24 21:52 (外部編輯)
頁面工具
顯示頁面
舊版
反向連結
回到頁頂