日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 多实例应用配置部署指南

發布時間:2025/4/16 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 多实例应用配置部署指南 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一,Mysql 多實例的作用的問題


1,有效利用服務器的資源

? ?當單個服務器資源有剩余的時候,可以充分利用剩余的資源以提供更多的服務

2,節約服務器的資源

? ?當公司資源緊張,但是數據庫各自需要獨立提供服務,而且需要主從同步等技術時候,此時使用多實例是最好的。

3,資源互相搶占的問題

? ?當某個服務實例并發很高或者有慢查詢的時候,整個實例會消耗更多的CPU,內存,磁盤IO資源,導致服務器上其他的實例提供的服務質量大大下降,相當于一個大房子,多個臥室,大家共用一個衛生間,早餐起床,一個人上廁所,長期占用,其他人要等待一樣的道理。


二、Mysql 多實例的應用場景


1,資源緊張型的公司

? ?業務量不大,不想花錢,又有多需求,所以特別適合多實例

2,并發訪問不是特別大的網站

? ?當公司業務量不大的適合,服務器資源沒有充分利用,有浪費的時候,就可以使用多實例

3,百度搜索引擎就使用了多實例 ?,sina 網也使用了多實例

? ?目的,節約IDC空間,資源充分利用?

? ?sina的配置 SATA 15000轉 ?4塊做raid5 ?48G內存?


三、MySQL多實例的配置方案

? 方案一:如下圖 ?推薦使用此

? 這種方式的優勢邏輯簡單,配置簡單,耦合度低

? 缺點是管理起來不太方便。


? ?




方案二:單一的部署方案 ??不推薦,耦合性太高

? ? ?[mysqld_muti]

? ? ? 即一個配置文件 啟動多個實例


四、開始配置MySQL多實例

? ?環境介紹:

? ?mysql 版本:5.6.27

? ?操作系統:Centos 6.5

? ?mysql實例數:2個?

? ?實例占用端口分別為:3306、3307?


先配置方案一:?



1.下載:在http://dev.mysql.com/downloads/mysql/官網上下載

??

2.解壓

1 tar?xvf?mysql-5.6.27-linux-glibc2.5-x86_64.tar.gz

?

3.移動到/usr/local/mysql

?

1 mv?mysql-5.6.27-linux-glibc2.5-x86_64?mysql

4.安裝依賴的lib包:

1 centos:yum?install??libaio?-y

5、配置用戶,目錄

1 2 3 4 5 shell>?groupadd?mysql shell>?useradd?-r?-g?mysql?mysql shell>?cd?/usr/local/mysql shell>?chown?-R?mysql?. shell>?chgrp?-R?mysql?.

6、使用/data/目錄作為MySQL多實例的總目錄

1 ?mkdir?-p?/data/{3306,3307}/data

7、開始配置多實例的配置文件

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 vim??/data/3306/my.cnf [mysqld]? ?#general ?basedir?=?/usr/local/mysql ?datadir?=?/data/3306/data ?socket?=?/data/3306/mysql.sock ?user?=?mysql ?port?=?3306 ?server_id?=?1 ?log-error?=?/data/3306/err.log ?pid?=?/data/3306/mysql.pid ?#binlog? ?log-bin??=?/data/3306/mysql-bin ?sync-binlog?=?1 ?#InnoDB ?innodb_flush_log_at_trx_commit ?innodb_support_xa?=?1????????????????????? ?#other ?character_set_server?=?utf8 ?default_storage_engine?=InnoDB ?ft_min_word_len?=?1 ?open_files_limit?=?65535 ?auto-increment-increment?=?10 ?auto-increment-offset?=?1? ?log_slave_updates=1??????????允許備庫將其重放的事件也記錄到自身的二進制日志中 ?read_only=0????????????????阻止任何沒有特權權限的線程修改數據 ?skip_slave_start? [client] ?socket?=?/data/3306/mysql.sock ?port?=?3306




1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 vim??/data/3307/my.cnf [mysqld]? ?#general ?basedir?=?/usr/local/mysql ?datadir?=?/data/3307/data ?socket?=?/data/3307/mysql.sock ?user?=?mysql ?port?=?3307 ?server_id?=?1 ?log-error?=?/data/3307/err.log ?pid?=?/data/3307/mysql.pid ?#binlog? ?log-bin??=?/data/3307/mysql-bin ?sync-binlog?=?1 ?#InnoDB ?innodb_flush_log_at_trx_commit ?innodb_support_xa?=?1????????????????????? ?#other ?character_set_server?=?utf8 ?default_storage_engine?=InnoDB ?ft_min_word_len?=?1 ?open_files_limit?=?65535 ?auto-increment-increment?=?10 ?auto-increment-offset?=?1? ?log_slave_updates=1??????????允許備庫將其重放的事件也記錄到自身的二進制日志中 ?read_only=0????????????????阻止任何沒有特權權限的線程修改數據 ?skip_slave_start? [client] ?socket?=?/data/3307/mysql.sock ?port?=?3307


8、創建多實例的啟動文件 。

? 放到/data/3306 ?| /data/3307 下

??腳本省略(mysqld)

?多實例啟動文件的啟動MySQL服務實質:

?

? ?

1 2 mysqld_safe?--defaults-file=/data/3306/my.cnf?2>&1?>/dev/null?& mysqld_safe?--defaults-file=/data/3307/my.cnf?2>&1?>/dev/null?&

??

?多實例啟動文件的停止MySQL服務實質:

1 2 ?mysqladmin?-u?root?-p?passwd?-S?/data/3306/mysql.sock?shutdown ?mysqladmin?-u?root?-p?passwd?-S?/data/3306/mysql.sock?shutdown??平滑停止

9,授權MySQL用戶,和組管理整個多實例目錄

1 ?chown?-R?mysql.mysql?/data

10,配置MySQL全局環境變量

1 2 ?echo?"export?PATH=$PATH:/usr/local/mysql/bin/"??>>?/etc/profile ?source??/etc/profile

11,開始初始化數據庫

?

1 2 3 ?cd/usr/local/mysql/scripts/ ?./mysql_install_db?--user=mysql??--datadir=/data/3306/data/?--basedir=/usr/local/mysql/ ?./mysql_install_db?--user=mysql??--datadir=/data/3307/data/?--basedir=/usr/local/mysql/

?什么初始化數據庫?

?a,初始化的主要目的就是創建基礎的數據庫文件,例如生成MySQL的庫表

?b,初始化后,產看目錄,可以看到一些表文件



12,啟動| 停止 MySQL服務

?如果有腳本,則使用腳本啟動

1 2 /data/3306/mysql??start? /data/3307/mysql??start

?如果沒有腳本,則使用以下啟動

1 mysqld_safe?--defaults-file=/data/3306/my.cnf?2>&1?>/dev/null?&
1 2 3 4 5 6 7 mysqld_safe?--defaults-file=/data/3307/my.cnf?2>&1?>/dev/null?& 如果沒有腳本,則使用一下啟動停止 mysqladmin?-u?root?-p?passwd?-S?/data/3306/mysql.sock?shutdown mysqladmin?-u?root?-p?passwd?-S?/data/3306/mysql.sock?shutdown??平滑停止|

13,檢查

? 登陸:

?mysql -S /data/3306/mysql.sock?


管理的話,在本地都是采用 -S /data/3306/mysql.sock,如果在遠程可以通過不同的端口連接上去坐管理操作。其他的和單實例的管理沒什么區別!


#######################################################################################


再來看第二種通過官方自帶的mysqld_multi來實現多實例實戰:

這里的mysql安裝以及數據庫的初始化和前面的步驟一樣,就不再贅述。


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 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 vim?/etc/my.cnf [mysqld_multi] mysqld?=?/usr/local/mysql/bin/mysqld_safe mysqladmin?=?/usr/local/mysql/bin/mysqladmin user?=?admin password?=?password [mysqld1]? ?#general ?basedir?=?/usr/local/mysql/ ?datadir?=?/data/3306/data/ ?socket?=?/data/3306/mysql.sock ?user?=?mysql ?port?=?3306 ?server_id?=?1 ?log-error?=?/data/3306/ ?pid?=?/data/3306/ ?#binlog? ?log-bin??=?/data/3306/mysql-bin ?sync-binlog?=?1 ?#InnoDB ?innodb_flush_log_at_trx_commit ?innodb_support_xa?=?1????????????????????? ?#other ?character_set_server?=?utf8 ?default_storage_engine?=InnoDB ?ft_min_word_len?=?1 ?open_files_limit?=?65535 ?auto-increment-increment?=?10 ?auto-increment-offset?=?1? ?log_slave_updates=1??????????允許備庫將其重放的事件也記錄到自身的二進制日志中 ?read_only=0????????????????阻止任何沒有特權權限的線程修改數據 ?skip_slave_start? [client] ?socket?=?/data/3306/mysql.sock ?port?=?3306 [mysqld2] ?#general ?basedir?=?/usr/local/mysql/ ?datadir?=?/data/3307/data/ ?socket?=?/data/3307/mysql.sock ?user?=?mysql ?port?=?3307 ?server_id?=?2 ?log-error?=?/data/3307/ ?pid?=?/data/3307/ ?#binlog? ?log-bin??=?/data/3307/mysql-bin ?sync-binlog?=?1 ?#InnoDB ?innodb_flush_log_at_trx_commit ?innodb_support_xa?=?1????????????????????? ?#other ?character_set_server?=?utf8 ?default_storage_engine?=InnoDB ?ft_min_word_len?=?1 ?open_files_limit?=?65535 ?auto-increment-increment?=?10 ?auto-increment-offset?=?1? ?log_slave_updates=1??????????允許備庫將其重放的事件也記錄到自身的二進制日志中 ?read_only=0????????????????阻止任何沒有特權權限的線程修改數據 ?skip_slave_start? [client] ?socket?=?/data/3307/mysql.sock ?port?=?3307 [mysql] no-auto-rehash prompt=\\u@\\d?\\R:\\m> [mysqld_safe] open-files-limit?=?8192


mysqld_multi啟動

1 2 3 4 5 6 7 8 9 10 11 /usr/local/mysql/bin/mysqld_multi?start?1 /usr/local/mysql/bin/mysqld_multi?start?2 ?? 停止MySQL實例 mysqladmin?-uroot?-p?-S?/data/3306/mysql.sock?shutdown mysqladmin?-uroot?-p?-S?/data/3307/mysql.sock?shutdown 更改原來密碼 mysqladmin?-uroot?password?'123456'?-S?/data/3306/mysql.sock mysqladmin?-uroot?password?'123456'?-S?/data/3307/mysql.sock

測試登陸

1 2 mysql?-uroot?-p?-S?/data/3306/mysql.sock? mysql?-uroot?-p?-S?/data/3307/mysql.sock



#########################################################################################

多實例MySQL忘記密碼,修改密碼的方法:

1,停掉原有實例進程?

1 mysqladmin?-uroot?-p?-S?/data/3306/mysql.sock?shutdown

2,加參數登錄MySQL,此時跳過密碼驗證


1 mysqld_safe??--defaults-file=/data/3306/my.cnf??--skip-grant-tables??&

3,登錄,并修改密碼?

?

1 mysql?-uroot?-p?-S?/data/3306/mysql.sock???登錄時空密碼

?修改密碼:

1 2 update?mysql.user?set?passowrd=password("123456")?where?user='root'; flush?privileges;


4,重啟MySQL,使用新密碼登錄

?

1 2 mysqladmin?-uroot?-p?-S?/data/330/mysql.sock?shutdown mysqld_safe?--defaults-file=/data/3306/my.cnf?2>&1?>/dev/null?&



本文轉自crazy_charles 51CTO博客,原文鏈接:http://blog.51cto.com/douya/1787516,如需轉載請自行聯系原作者


總結

以上是生活随笔為你收集整理的mysql 多实例应用配置部署指南的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。