mysql服务实例配置_MySQL多实例配置
MySQL的多實例配置
?在一臺物理機(jī)中需要多個測試環(huán)境,那么就需要用到了搭建數(shù)據(jù)庫的多個實例,多個實例的意思就是運行多份程序,實例與實例之間沒有影響。要注意監(jiān)聽的端口需要不同。
環(huán)境:CentOS7.4
實驗預(yù)期:在一臺虛擬機(jī)上安裝三套MariaDB數(shù)據(jù)庫,數(shù)據(jù)庫版本5.5
思路:三套配置文件(日志文件,配置文件,數(shù)據(jù)庫文件),三個不同的端口
安裝第一個實例
yum install mariadb-server
? 1、創(chuàng)建運行的目錄環(huán)境
[root@centos7 ~]#mkdir -p /mysqldb/{3306,3307,3308}/{etc,socket,pid,log,data,bin}
[root@centos7~]# chown -R mysql:mysql /mysqldb/
目錄結(jié)構(gòu)如下
[root@centos7 ~]# tree /mysqldb/
/mysqldb/├──3306│ ├── bin
│ ├── data
│ ├── etc
│ ├── log
│ ├── pid
│ └── socket
├──3307│ ├── bin
│ ├── data
│ ├── etc
│ ├── log
│ ├── pid
│ └── socket
└──3308├── bin
├── data
├── etc
├── log
├── pid
└── socket21 directories, 0 files
2、初始化數(shù)據(jù)庫
[root@centos7 ~]# mysql_install_db --datadir=/mysqldb/3306/data/ --user=mysql[root@centos7 ~]# mysql_install_db--datadir=/mysqldb/3307/data/ --user=mysql [root@centos7~]# mysql_install_db--datadir=/mysqldb/3308/data/ --user=mysql
3、創(chuàng)建各自配置文件
cp /etc/my.cnf /mysqldb/3306/etc/
4、修改各自配置文件
vim my.cnf
[mysqld]
port=3306datadir=/mysqldb/3306/data
socket=/mysqldb/3306/socket/mysql.sock
[mysqld_safe]
log-error=/mysqldb/3306/log/mariadb.log
pid-file=/mysqldb/3306/pid/mariadb.pid#chown -R mysql:mysql /mysqldb #給目錄添加權(quán)限
#!includefir /etc/my.cnf.d 添加此行注釋
參照3306配置文件,將3307,3308配置文件也生成
cp/mysqldb/3306/etc/my.cnf /mysqldb/3307/etc/my.cnf
cp/mysqldb/3306/etc/my.cnf /mysqldb/3308/etc/my.cnf
:%s /3306/3307/g 腳本搜索全局替換
5、準(zhǔn)備啟動服務(wù)腳本
[root@centos7 /mysqldb/3306/bin]# vim mysqld
#!/bin/bash
port=3306? ?#需要修改為當(dāng)前實例的端口號
mysql_user="root"
mysql_pwd=""
cmd_path="/usr/bin"??#安裝目錄下的bin
mysql_basedir="/mysqldb"?#實例數(shù)據(jù)庫文件所在目錄
mysql_sock="${mysql_basedir}/${port}/socket/mysql.sock"
function_start_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "Starting MySQL...\n"
${cmd_path}/mysqld_safe --defaults-file=${mysql_basedir}/${port}/etc/my.cnf &> /dev/null &
else
printf "MySQL is running...\n"
exit
fi
}
function_stop_mysql()
{
if [ ! -e "$mysql_sock" ];then
printf "MySQL is stopped...\n"
exit
else
printf "Stoping MySQL...\n"
${cmd_path}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S ${mysql_sock} shutdown
fi
}
function_restart_mysql()
{
printf "Restarting MySQL...\n"
function_stop_mysql
sleep 2
function_start_mysql
}
case $1 in
start)
function_start_mysql
;;
stop)
function_stop_mysql
;;
restart)
function_restart_mysql
;;
*)
printf "Usage: ${mysql_basedir}/${port}/bin/mysqld {start|stop|restart}\n"
esac
? 6、修改腳本文件權(quán)限,防止密碼被別人看到
[root@centos7 ~]# chmod 700 /mysqldb/3306/bin/mysqld
[root@centos7~]# chmod 700 /mysqldb/3307/bin/mysqld
[root@centos7~]# chmod 700 /mysqldb/3308/bin/mysqld
7、啟動服務(wù)
[root@centos7 ~]# service mysqld stop #保證自己原來的服務(wù)停止,釋放3306端口
[root@centos7~]# /mysqldb/3306/bin/mysqld start #啟動服務(wù)
[root@centos7~]# /mysqldb/3307/bin/mysqld start
[root@centos7~]# /mysqldb/3308/bin/mysqld start
[root@centos7~]# ss -tnl #如果看到三個實例監(jiān)聽的端口都打開后說明服務(wù)啟動正常
LISTEN0 80 :::3306 :::*LISTEN0 80 :::3307 :::*LISTEN0 80 :::3308 :::*
8、連接測試
[root@centos7 ~]# mysql -S /mysqldb/3306/socket/mysql.sock #使用-S指定套接字文件
Server version:10.2.15-MariaDB-log Source distribution
MariaDB [(none)]> show variables like '%port'; #查看端口是否是3306+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| extra_port | 0 |
| large_files_support | ON |
| port | 3306 |
| report_port | 3306 |
+---------------------+-------+
4 rows in set (0.00sec)
[root@centos7~]# mysql -S /mysqldb/3307/socket/mysql.sock #再連接測試一下3307和3308
Server version:10.2.15-MariaDB-log Source distribution
MariaDB [(none)]> show variables like '%port';+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| extra_port | 0 |
| large_files_support | ON |
| port | 3307 |
| report_port | 3307 |
+---------------------+-------+
4 rows in set (0.00sec)
[root@centos7~]# mysql -S /mysqldb/3308/socket/mysql.sock
Server version:10.2.15-MariaDB-log Source distribution
MariaDB [(none)]> show variables like '%port';+---------------------+-------+
| Variable_name | Value |
+---------------------+-------+
| extra_port | 0 |
| large_files_support | ON |
| port | 3308 |
| report_port | 3308 |
+---------------------+-------+
4 rows in set (0.00 sec)
?多實例搭建成功!
9、使用這條命令來停止實例
[root@centos7 ~]# /mysqldb/3306/bin/mysqld stop
? 10、最后一步:給root用戶加個密碼
[root@centos7 ~]# mysql -S /mysqldb/3307/socket/mysql.sock
Server version:10.2.15-MariaDB-log Source distribution
MariaDB [(none)]> update mysql.user set password=PASSWORD("your_password") where user='root';
Query OK,4 rows affected (0.00sec)
MariaDB [(none)]>flush privileges;
Query OK,0 rows affected (0.00sec)
MariaDB [(none)]> select user,host,password frommysql.user;+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *9E72259BA9214F692A85B240647C4D95B0F2E08B |
| root | centos7 | *9E72259BA9214F692A85B240647C4D95B0F2E08B |
| root | 127.0.0.1 | *9E72259BA9214F692A85B240647C4D95B0F2E08B |
| root | ::1 | *9E72259BA9214F692A85B240647C4D95B0F2E08B |
| | localhost | |
| | centos7 | |
+------+-----------+-------------------------------------------+
6 rows in set (0.00sec)
[root@centos7~]# mysql -S /mysqldb/3307/socket/mysql.sock -uroot -p'your_password' #指定密碼,再次登錄OK~
總結(jié)
以上是生活随笔為你收集整理的mysql服务实例配置_MySQL多实例配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql5.5多实例配置_mysql-
- 下一篇: mysql存储加速_mysql存储过程加