mysql多实例(三种方法)
目錄
一.概述
二.第一種
1.配置
2.啟動服務(wù)
3.停止服務(wù)
4.加入mysql命令路徑到PATH變量
三.第二種
1.解壓MySQL安裝包
2.在mysql目錄下創(chuàng)建data目錄
3.在data目錄下創(chuàng)建二個實例的主目錄
4.添加mysql組和mysql組用戶
5.初始化四個實例,分別執(zhí)行
6.為四個實例創(chuàng)建主配置文件my.cnf
7.啟動實例
8.修改數(shù)據(jù)庫密碼和賦予遠程登錄權(quán)限
四.第三種
一.概述
-
在一臺物理主機上運行多個數(shù)據(jù)庫服務(wù)
-
節(jié)約運維成本
-
提高硬件利用率
-
多實例配置,需要專用的、支持多實例的Mysql軟件。這里對應(yīng)的軟件包是mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
二.第一種
1.配置
-
配置一臺為多實例數(shù)據(jù)庫服務(wù)器,如果已安裝mysql,則停止其服務(wù),或?qū)⑵湫遁d
-
不能存在/etc/my.cnf文件,如果有此文件則移走它
-
直接解壓多實例Mysql軟件包
-
編寫配置文件
-
創(chuàng)建工作目錄
2.啟動服務(wù)
-
啟動第1個實例
-
啟動第2個實例
3.停止服務(wù)
[root@mysql1 ~]# /usr/local/mysql/bin/mysqld_multi --user root --password mysql_P@s5 stop 14.加入mysql命令路徑到PATH變量
# 臨時增加 [root@mysql1 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@mysql1 ~]# export PATH=$PATH:/usr/local/mysql/bin [root@mysql1 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin ? # 永久修改PATH環(huán)境變量 [root@mysql1 ~]# vim .bash_profile ? # 在下方添加 PATH=$PATH:$HOME/bin:/usr/local/mysql/bin export PATH [root@mysql1 ~]# source .bash_profile ? # 停止實例2 [root@mysql1 ~]# mysqld_multi --user root --password mysql_P@s5 stop 2三.第二種
安裝部署 我這里以創(chuàng)建四個MySQL實例為例,監(jiān)聽的端口分別是3307,3308,3309,3310
1.解壓MySQL安裝包
地址:MySQL :: Download MySQL Community Server (Archived Versions)
~]# tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz # 移動并重命名 ~]# mv mysql-5.7.34-linux-glibc2.12-x86_64 /usr/local/mysql2.在mysql目錄下創(chuàng)建data目錄
~]# cd /usr/local/mysql ~]# mkdir data3.在data目錄下創(chuàng)建二個實例的主目錄
~]# cd /usr/local/mysql/data/ ~]# mkdir {3306,3307}4.添加mysql組和mysql組用戶
~]# groupadd mysql ~]# useradd -r -g mysql mysql5.初始化四個實例,分別執(zhí)行
~]# cd /usr/local/mysql/bin/ ~]# ./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3306/ --user=mysql ~]# ./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/3307/ --user=mysql6.為四個實例創(chuàng)建主配置文件my.cnf
~]# cd /usr/local/mysql/data/3307 ~]# vim my.cnf # 主配置文件內(nèi)容 ? [client] port=3306 socket=/usr/local/mysql/data/3307/mysql.sock default_character_set=utf8 ? [mysqld] port=3306 socket=/usr/local/mysql/data/3307/mysql.sock datadir=/usr/local/mysql/data/3307 log-error=/usr/local/mysql/data/3307/error.log pid-file=/usr/local/mysql/data/3307/mysql.pid character_set_server=utf8 lower_case_table_names=1 autocommit=1替換不同實例配置文件中的目錄名
只要在vi或vim編輯器中執(zhí)行命令:%s/被替換的目錄名/要替換的目錄名/g 如:
注意:要在每個實例的主目錄中為每個實例都創(chuàng)建主配置文件,且目錄名要和實例端口號對應(yīng)
7.啟動實例
~]# cd /usr/local/mysql/bin/ ~]# ./mysqld_safe --defaults-file=/usr/local/mysql/data/3306/my.cnf & ~]# ./mysqld_safe --defaults-file=/usr/local/mysql/data/3307/my.cnf &查看兩個實例進程狀態(tài)
~]# ps -ef | grep mysql可以看到,端口的MySQL實例都啟動成功
8.修改數(shù)據(jù)庫密碼和賦予遠程登錄權(quán)限
這里我以端口號為3307的實例為例,其他實例只需修改命令中的端口號就可以了
~]# cd /usr/local/mysql/bin/ ~]# ./mysql -u用戶名 -p -P端口 -h地址 ? ~]# ./mysql -uroot -p -P3307 -h127.0.0.1 # 沒有密碼直接回車 ? # 執(zhí)行命令修改密碼 > alter user 'root'@'localhost' identified by '密碼'; ? # 授予遠程登錄權(quán)限 > grant all privileges on *.* to root@'%' identified by '密碼';四.第三種
搭好的服務(wù)器添加多實例
注:這里是根據(jù)我的情況添加的多實例,最基本的就是直接創(chuàng)建一個數(shù)據(jù)目錄--->初始化--->拷貝my.cnf文件--->修改內(nèi)容--->啟動放入后臺,訪問的時候要看自己的數(shù)據(jù)庫是否有遠程權(quán)限密碼等,我這里配置文件有密碼的但是沒有遠程權(quán)限,(如果沒有在配置文件中寫密碼,可以遠程就直接輸入如:./mysql -usystem -p?-P3307?-h127.0.0.1-->直接回車-->修改密碼)
# 先創(chuàng)建一個存放示例的地方 ~]# mkdir -p /data/mysql2/data/ # 初始化數(shù)據(jù)目錄 ~]# cd /usr/local/mysql/bin/ ~]# ./mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/data/mysql2/data --user=mysql # 復(fù)制主配置文件內(nèi)容 ~]# cp /etc/my.cnf /etc/my2.cnf # 修改里面的端口,id,數(shù)據(jù)目錄等等,對應(yīng)剛剛創(chuàng)建的目錄的 # 啟動放入后臺 ~]# /usr/local/mysql/bin/mysqld --defaults-file=/etc/my2.cnf --basedir=/usr/local/mysql --datadir=/data/mysql2/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql2/error.log --open-files-limit=65535 --pid-file=mysqldb2.pid --socket=/data/mysql2/mysql.sock --port=3307 & # 查看與關(guān)閉 ~]# ps -ef | grep mysql | grep -E '3306|3307' ~]# kill [id號] # 測試登錄 ~]# cd /usr/local/mysql/bin/ ~]# ./mysql -usystem -pmysql_P@s5 -P3306 -hlocalhost 《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的mysql多实例(三种方法)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pycharm报错(Non-zero e
- 下一篇: 串口IDLE空闲中断+DMA实现接收不定