mysql服务实例配置_MySQL多实例配置
MySQL的多實例配置
?在一臺物理機中需要多個測試環境,那么就需要用到了搭建數據庫的多個實例,多個實例的意思就是運行多份程序,實例與實例之間沒有影響。要注意監聽的端口需要不同。
環境:CentOS7.4
實驗預期:在一臺虛擬機上安裝三套MariaDB數據庫,數據庫版本5.5
思路:三套配置文件(日志文件,配置文件,數據庫文件),三個不同的端口
安裝第一個實例
yum install mariadb-server
? 1、創建運行的目錄環境
[root@centos7 ~]#mkdir -p /mysqldb/{3306,3307,3308}/{etc,socket,pid,log,data,bin}
[root@centos7~]# chown -R mysql:mysql /mysqldb/
目錄結構如下
[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、初始化數據庫
[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、創建各自配置文件
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 #給目錄添加權限
#!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、準備啟動服務腳本
[root@centos7 /mysqldb/3306/bin]# vim mysqld
#!/bin/bash
port=3306? ?#需要修改為當前實例的端口號
mysql_user="root"
mysql_pwd=""
cmd_path="/usr/bin"??#安裝目錄下的bin
mysql_basedir="/mysqldb"?#實例數據庫文件所在目錄
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、修改腳本文件權限,防止密碼被別人看到
[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、啟動服務
[root@centos7 ~]# service mysqld stop #保證自己原來的服務停止,釋放3306端口
[root@centos7~]# /mysqldb/3306/bin/mysqld start #啟動服務
[root@centos7~]# /mysqldb/3307/bin/mysqld start
[root@centos7~]# /mysqldb/3308/bin/mysqld start
[root@centos7~]# ss -tnl #如果看到三個實例監聽的端口都打開后說明服務啟動正常
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~
總結
以上是生活随笔為你收集整理的mysql服务实例配置_MySQL多实例配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql5.5多实例配置_mysql-
- 下一篇: mysql存储加速_mysql存储过程加