mysql多实例(三种方法)
目錄
一.概述
二.第一種
1.配置
2.啟動(dòng)服務(wù)
3.停止服務(wù)
4.加入mysql命令路徑到PATH變量
三.第二種
1.解壓MySQL安裝包
2.在mysql目錄下創(chuàng)建data目錄
3.在data目錄下創(chuàng)建二個(gè)實(shí)例的主目錄
4.添加mysql組和mysql組用戶
5.初始化四個(gè)實(shí)例,分別執(zhí)行
6.為四個(gè)實(shí)例創(chuàng)建主配置文件my.cnf
7.啟動(dòng)實(shí)例
8.修改數(shù)據(jù)庫(kù)密碼和賦予遠(yuǎn)程登錄權(quán)限
四.第三種
一.概述
-
在一臺(tái)物理主機(jī)上運(yùn)行多個(gè)數(shù)據(jù)庫(kù)服務(wù)
-
節(jié)約運(yùn)維成本
-
提高硬件利用率
-
多實(shí)例配置,需要專用的、支持多實(shí)例的Mysql軟件。這里對(duì)應(yīng)的軟件包是mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
二.第一種
1.配置
-
配置一臺(tái)為多實(shí)例數(shù)據(jù)庫(kù)服務(wù)器,如果已安裝mysql,則停止其服務(wù),或?qū)⑵湫遁d
-
不能存在/etc/my.cnf文件,如果有此文件則移走它
-
直接解壓多實(shí)例Mysql軟件包
-
編寫配置文件
-
創(chuàng)建工作目錄
2.啟動(dòng)服務(wù)
-
啟動(dòng)第1個(gè)實(shí)例
-
啟動(dòng)第2個(gè)實(shí)例
3.停止服務(wù)
[root@mysql1 ~]# /usr/local/mysql/bin/mysqld_multi --user root --password mysql_P@s5 stop 14.加入mysql命令路徑到PATH變量
# 臨時(shí)增加 [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 ? # 停止實(shí)例2 [root@mysql1 ~]# mysqld_multi --user root --password mysql_P@s5 stop 2三.第二種
安裝部署 我這里以創(chuàng)建四個(gè)MySQL實(shí)例為例,監(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 # 移動(dòng)并重命名 ~]# 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)建二個(gè)實(shí)例的主目錄
~]# cd /usr/local/mysql/data/ ~]# mkdir {3306,3307}4.添加mysql組和mysql組用戶
~]# groupadd mysql ~]# useradd -r -g mysql mysql5.初始化四個(gè)實(shí)例,分別執(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.為四個(gè)實(shí)例創(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替換不同實(shí)例配置文件中的目錄名
只要在vi或vim編輯器中執(zhí)行命令:%s/被替換的目錄名/要替換的目錄名/g 如:
注意:要在每個(gè)實(shí)例的主目錄中為每個(gè)實(shí)例都創(chuàng)建主配置文件,且目錄名要和實(shí)例端口號(hào)對(duì)應(yīng)
7.啟動(dòng)實(shí)例
~]# 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 &查看兩個(gè)實(shí)例進(jìn)程狀態(tài)
~]# ps -ef | grep mysql可以看到,端口的MySQL實(shí)例都啟動(dòng)成功
8.修改數(shù)據(jù)庫(kù)密碼和賦予遠(yuǎn)程登錄權(quán)限
這里我以端口號(hào)為3307的實(shí)例為例,其他實(shí)例只需修改命令中的端口號(hào)就可以了
~]# cd /usr/local/mysql/bin/ ~]# ./mysql -u用戶名 -p -P端口 -h地址 ? ~]# ./mysql -uroot -p -P3307 -h127.0.0.1 # 沒(méi)有密碼直接回車 ? # 執(zhí)行命令修改密碼 > alter user 'root'@'localhost' identified by '密碼'; ? # 授予遠(yuǎn)程登錄權(quán)限 > grant all privileges on *.* to root@'%' identified by '密碼';四.第三種
搭好的服務(wù)器添加多實(shí)例
注:這里是根據(jù)我的情況添加的多實(shí)例,最基本的就是直接創(chuàng)建一個(gè)數(shù)據(jù)目錄--->初始化--->拷貝my.cnf文件--->修改內(nèi)容--->啟動(dòng)放入后臺(tái),訪問(wèn)的時(shí)候要看自己的數(shù)據(jù)庫(kù)是否有遠(yuǎn)程權(quán)限密碼等,我這里配置文件有密碼的但是沒(méi)有遠(yuǎn)程權(quán)限,(如果沒(méi)有在配置文件中寫密碼,可以遠(yuǎn)程就直接輸入如:./mysql -usystem -p?-P3307?-h127.0.0.1-->直接回車-->修改密碼)
# 先創(chuàng)建一個(gè)存放示例的地方 ~]# 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ù)目錄等等,對(duì)應(yīng)剛剛創(chuàng)建的目錄的 # 啟動(dòng)放入后臺(tái) ~]# /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號(hào)] # 測(cè)試登錄 ~]# cd /usr/local/mysql/bin/ ~]# ./mysql -usystem -pmysql_P@s5 -P3306 -hlocalhost 《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的mysql多实例(三种方法)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: pycharm报错(Non-zero e
- 下一篇: Mysql数据库基础(一)基本概述、构建