本文目錄一覽:
- 1、mysql創建多個實例,my.cnf配置文件需要幾個?
- 2、MySQL在一台db伺服器上面如何啟動多個實例
- 3、如何在同一台機器上安裝多個MySQL的實例
- 4、mysql如何創建多個實例,求步驟,謝謝,急求
- 5、求助:mysql 多個埠配置/多實例安裝
- 6、運維 一台db伺服器能放多少mysql實例
mysql創建多個實例,my.cnf配置文件需要幾個?
配置文件還是一個,只不過mysql的資料庫存放目錄需要多個,這根據你的實例來配置資料庫存放目錄。
給個多實例配置案例:
初始化資料庫
[mysql@localhost ~]$ mkdir /mydata/mysql_db/data_1001 #創建資料庫存放目錄
[mysql@localhost ~]$ mkdir /mydata/mysql_db/data_1002
[mysql@localhost ~]$ mkdir /mydata/mysql_db/data_1003
[mysql@localhost mysql_db]$ ./bin/mysql_install_db –basedir=/mydata/mysql_db –datadir=/mydata/mysql_db/data_1001 –user=mysql #資料庫初始化
Installing MySQL system tables…
OK
Filling help tables…
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/mydata/mysql_db/bin/mysqladmin -u root password 『new-password』
/mydata/mysql_db/bin/mysqladmin -u root -h localhost password 『new-password』
Alternatively you can run:
/mydata/mysql_db/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd /mydata/mysql_db ; /mydata/mysql_db/bin/mysqld_safe
You can test the MySQL daemon with mysql-test-run.pl
cd /mydata/mysql_db/mysql-test ; perl mysql-test-run.pl
Please report any problems with the /mydata/mysql_db/scripts/mysqlbug script!
[mysql@localhost mysql_db]$ ./bin/mysql_install_db –basedir=/mydata/mysql_db –datadir=/mydata/mysql_db/data_1002 –user=mysql
[mysql@localhost mysql_db]$ ./bin/mysql_install_db –basedir=/mydata/mysql_db –datadir=/mydata/mysql_db/data_1003 –user=mysql
配置mysql_multi
[mysql@localhost mysql_db]$ cd /home/mysql/
[mysql@localhost ~]$ vi my.cnf
[mysqld_multi] #添加內容如下
mysqld = /mydata/mysql_db/bin/mysqld_safe
mysqladmin = /mydata/mysql_db/bin/mysqladmin
user = mysql
[mysqld1001]
port = 3306
socket = /tmp/mysql3306.sock
pid-file = /tmp/mysql3306.pid
basedir = /mydata/mysql_db
datadir = /mydata/mysql_db/data_1001
skip-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K
server-id = 1
[mysqld1002]
port = 3307
socket = /tmp/mysql3307.sock
basedir = /mydata/mysql_db
datadir = /mydata/mysql_db/data_1002
pid-file = /tmp/mysql3307.pid
skip-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K
server-id = 1
[mysqld1003]
port = 3308
socket = /tmp/mysql3308.sock
basedir = /mydata/mysql_db
datadir = /mydata/mysql_db/data_1003
pid-file = /tmp/mysql3308.pid
skip-locking
key_buffer_size = 16K
max_allowed_packet = 1M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K
server-id = 1
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
多實例啟動
[mysql@localhost mysql_db]$ mysqld_multi –defaults-file=/home/mysql/my.cnf –user=mysql start 1001-1003 #啟動mysql實例
MySQL在一台db伺服器上面如何啟動多個實例
一、上傳RPM包到伺服器上 二、安裝mysql伺服器端rpm -ivhMySQL-server-5.5.8-1.rhel5.x86_64.rpm 三、安裝mysql客戶端 rpm -ivhMySQL-client-5.5.8-1.rhel5.x86_64.rpm 四、創建目錄 在/data下創建目錄,把原來的數據目錄/var/lib/mysql 移到/data/mysql/data1和/data/mysql/data2下,並修改mysql目錄以及子目錄許可權 PS:安裝後默認的幾個重要目錄 目錄 內容/var/lib/mysql 數據文件,日誌文件等等/usr/bin客戶端程序和腳本/usr/share/mysql 錯誤消息和字符集文件/etc/rc.d/init.d/mysql 啟動腳本文件 創建目錄 修改許可權 五、修改並上傳配置文件my.cnf 從伺服器上的/usr/share/mysql目錄中把my-innodb-heavy-4G.cnf拷貝一份到本地。編輯其內容增加數據文件和日誌文件的目錄,修改socket目錄。 六、用mysql_multi啟動多個服務 啟動:mysqld_multi –defaults-file=/etc/my.cnf start1,2 查看是否啟動:mysqld_multi –defaults-file=/etc/my.cnfreport 1 七、查看埠是否打開 八、連接進入指定的mysql伺服器 mysql -u root -S/tmp/mysql1.sock 或者mysql -uroot -P3307 -h127.0.0.1 九、記得關閉防火牆
如何在同一台機器上安裝多個MySQL的實例
這種架構一般用在以下三類場景
1. 備份多台 Server 的數據到一台如果按照數據切分方向來講,那就是垂直切分。比如圖 2,業務 A、B、C、D 是之前拆分好的業務,現在需要把這些拆分好的業務匯總起來備份,那這種需求也很適用於多源複製架構。實現方法我大概描述下:業務 A、B、C、D 分別位於 4 台 Server,每台 Server 分別有一個資料庫來隔離前端的業務數據,那這樣,在從庫就能把四台業務的數據全部匯總起來,而不需要做額外的操作。那沒有多源複製之前,要實現這類需求,只能在匯總機器上搭建多個 MySQL 實例,那這樣勢必會涉及到跨庫關聯的問題,不但性能急劇下降,管理多個實例也沒有單台來的容易。
2. 用來聚合前端多個 Server 的分片數據。
同樣,按照數據切分方向來講,屬於水平切分。比如圖 3,按照年份拆分好的數據,要做一個匯總數據展現,那這種架構也非常合適。實現方法稍微複雜些:比如所有 Server 共享同一資料庫和表,一般為了開發極端透明,前端配置有分庫分表的中間件,比如愛可生的 DBLE。
3. 匯總併合並多個 Server 的數據
第三類和第一種場景類似。不一樣的是不僅僅是數據需要匯總到目標端,還得合併這些數據,這就比第一種來的相對複雜些。比如圖 4,那這樣的需求,是不是也適合多源複製呢?答案是 YES。那具體怎麼做呢?
mysql如何創建多個實例,求步驟,謝謝,急求
大多情況下,需要可靠而有效地克隆 MySQL 實例數據。這包括 MySQL 高可用的解決方案,其中需要在將實例加入組複製集群之前配置實例,或者在經典複製模型中將其添加為 Slave。
為複製拓撲而創建 MySQL 副本一直很麻煩。涉及的步驟很多,首先要備份 MySQL 伺服器,通過網路將備份傳輸到我們想要添加到複製集的新 MySQL 節點,然後在該節點上恢復備份並手動啟動 MySQL 伺服器。為了高可用,最好還要將其正確設置備份的 GTID,並啟動並運行群集。涉及的手動步驟數量過多不利於高可用。CLONE 插件解決了這個問題並簡化了副本配置。使您可以使用 MySQL 客戶端(和 SQL 命令)來配置新節點並在發生時觀察克隆進度。無需手動處理多個步驟並維護自己的基礎架構來配置新的 MySQL 節點。
MySQL 8.0.17 引入了 CLONE SQL 語句,使當前的 MySQL 伺服器成為另一個運行在不同節點的 MySQL 伺服器的「克隆」。我們將執行 clone 語句的伺服器實例稱為「受體」。克隆的源伺服器實例稱為「供體」。供體克隆以一致的快照存儲在 InnoDB 存儲引擎中的所有數據和元數據,以替換受體中的數據。
成功執行 CLONE SQL 語句後,將自動重新啟動受體伺服器。重新啟動涉及恢復克隆的快照數據,就像用老方法複製數據一樣。恢復完成後,受體就是供體的克隆版,隨時可以使用!
這裡有一些關於克隆過程的重要注意事項。
不克隆 MySQL 配置參數,並且受體保留所有原始配置參數,如克隆之前。這樣做是因為許多配置可能特定於節點(例如 PORT),因此保留它們似乎是一個不錯的選擇。另一方面,一些存儲配置確實需要在供體和受體之間匹配(例如 innodbpagesize),如果這樣的配置參數不匹配,CLONE 將報告錯誤。
CLONE 插件不會克隆二進位日誌。
CLONE 插件目前僅支持 InnoDB 存儲引擎。在其他存儲引擎(如 MyISAM 和 CSV)中創建的表將被克隆為空表。克隆基礎架構的設計允許克隆 MySQL 支持的任何存儲引擎。但是,只有 InnoDB 序列化和反序列化方法已經實現並經過測試。
克隆會阻止供體中的所有並發 DDL。
需要注意的事實是受體放棄所有數據以及任何二進位日誌,以便成為供體實例的克隆。在執行 CLONE 之前,如果認為有必要,需要備份當前受體數據。
求助:mysql 多個埠配置/多實例安裝
給你個linux的配置 my.cnf的內容
[mysqld_multi]
mysqld=/usr/local/mysql/bin/mysqld_safe
[client]
socket = /tmp/mysql.sock
default-character-set=utf8
[mysqld1]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
character-set-server=utf8
default-storage-engine=innodb
port = 3306
table_open_cache = 64
innodb_data_home_dir = /usr/local/mysql/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/data
innodb_buffer_pool_size = 50M
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
[mysqld2]
datadir=/usr/local/mysql/data1
basedir=/usr/local/mysql
character-set-server=utf8
default-storage-engine=innodb
port = 3307
table_open_cache = 64
innodb_data_home_dir = /usr/local/mysql/data1
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/data1
innodb_buffer_pool_size = 50M
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
—-【mysqld】中的配置和單實例的mysqld配置一致,多實例中每個[mysqld]需要有不同的埠號,sock,datadir
然後是啟動:/usr/local/mysql/bin/mysqld_mulit –defaults-extra-file=/etc/my.cnf start 1
—-這裡的數字1 對應[mysqld1] ,關閉就是 把start 改成stop,啟動所有就是 start all
其他命令你自己網上查下吧
運維 一台db伺服器能放多少mysql實例
一台資料庫伺服器為什麼運行多個實例?
有一台MySQL資料庫伺服器硬體利用率往往在30%左右,那剩餘的70%豈不是浪費了,這時就可以考慮運行多個MySQL服務,你可以做主從架構,讀寫分離,資料庫隔離,容納更多的並發鏈接,充分利用硬體資源,讓伺服器性能發揮最大化。
1、編譯安裝MySQL5.5
1
2
3
4
5
6
7
8
9
10
11
12
# yum install -y cmake gcc gcc-c++ make cmake ncurses ncurses-devel
# groupadd mysql
# useradd -g mysql -s /sbin/nologin mysql
# tar zxvf mysql-5.5.31.tar.gz
# cd mysql-5.5.31
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql5.5 -DSYSCONFDIR=/usr/local/mysql5.5/etc -DMYSQL_DATADIR=/usr/local/mysql5.5/data
# make make install
# mkdir /usr/local/mysql5.5/etc
# cp support-files/my-medium.cnf /usr/local/mysql5.5/etc/my.cnf
# chown -R mysql.mysql /usr/local/mysql5.5/
# echo 『PATH=$PATH:/usr/local/mysql5.5/bin’ /etc/profile
# source /etc/profile
3、初始化資料庫實例
1
2
3
4
# mkdir /usr/local/mysql5.5/data3306 #創建資料庫數據目錄
# mkdir /usr/local/mysql5.5/data3307
# /usr/local/mysql5.5/scripts/mysql_install_db –basedir=/usr/local/mysql5.5/ –datadir=/usr/local/mysql5.5/data3306/ –user=mysql
# /usr/local/mysql5.5/scripts/mysql_install_db –basedir=/usr/local/mysql5.5/ –datadir=/usr/local/mysql5.5/data3307/ –user=mysql
2、配置多實例信息並使用mysqld_multi工具集中管理
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# cd /usr/local/mysql5.5/etc/
# vi my.cnf
[mysqld_multi]
mysqld = /usr/local/mysql5.5/bin/mysqld_safe
mysqladmin = /usr/local/mysql5.5/bin/mysqladmin
user = root #登陸資料庫用戶
password = 123 #登陸資料庫密碼,用於關閉資料庫,兩台資料庫密碼設置一樣
[mysqld1]
user = mysql
port = 3306
socket = /tmp/mysql3306.sock
pid-file = /usr/local/mysql5.5/data3306/mysql.pid
basedir = /usr/local/mysql5.5
datadir = /usr/local/mysql5.5/data3306
log_error = /var/log/mysql/3306_error.log
[mysqld2]
user = mysql
port = 3307
socket = /tmp/mysql3307.sock
pid-file = /usr/local/mysql5.5/data3307/mysql.pid
basedir = /usr/local/mysql5.5
datadir = /usr/local/mysql5.5/data3307
log_error = /var/log/mysql/3307_error.log
3、啟動實例1,2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 單個實例啟動或關閉
# mysqld_multi –defaults-file=/usr/local/mysql5.5/etc/my.cnf start/stop 1
# mysqld_multi –defaults-file=/usr/local/mysql5.5/etc/my.cnf start/stop 2
# 雙實例同時啟動或關閉
# mysqld_multi –defaults-file=/usr/local/mysql5.5/etc/my.cnf start/stop 1,2
# 查看MySQL是否啟動
# mysqld_multi –defaults-file=./my.cnf report 1,2
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running
# netstat -antp |grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 20896/mysqld
tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 21499/mysqld
# 加入開機啟動
echo “/usr/local/mysql5.5/mysqld_multi –defaults-file=/usr/local/mysql5.5/etc/my.cnf start 1,2” /etc/rc.local
註:如果不想用mysqld_multi工具,可以獨立實例配置文件,自己啟動或關閉,如下:
1
2
# /usr/local/mysql5.5/bin/mysqld_safe –defaults-extra-file=/usr/local/mysql5.5/etc/my3306.cnf –datadir=/usr/local/mysql5.5/data3306/ –user=mysql
# mysqladmin -uroot -p123 -S/tmp/mysql3306.sock shutdown
4、本地登錄
1
2
3
4
5
# 首次登錄先設置密碼
# mysql -S /tmp/mysql3306.sock -P 3307 -uroot -p #直接回車進入
mysql set password=password(‘123’);
# mysql -S /tmp/mysql3307.sock -P 3307 -uroot -p
mysql set password=password(‘123’);
5、遠程登錄(先開啟遠程訪問許可權)
1
2
3
mysql grant all on *.* to’root’@’%’ identified by ‘123’;
# mysql -h 192.168.1.10 -P 3306 -uroot -p123
# mysql -h 192.168.1.10 -P 3307 -uroot -p123
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/290832.html