加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

同一台机器上配置两个MySQL实例

发布时间:2022-03-25 11:35:58 所属栏目:MySql教程 来源:互联网
导读:摘要:实际环境中,为充分利用硬件资源,同一台机器上可能运行多个mysql实例,本文分享一种实现方法。 1.虚拟机准备 1.1. VMware Workstation Pro 12.1 内存:建议至少2G 硬盘:建议至少40G,动态分配 1.2. 操作系统准备 操作系统为CentOS 6.5 64bit IP:19
       摘要:实际环境中,为充分利用硬件资源,同一台机器上可能运行多个mysql实例,本文分享一种实现方法。
 
1.虚拟机准备
1.1. VMware Workstation Pro 12.1
     内存:建议至少2G
     硬盘:建议至少40G,动态分配
 
1.2. 操作系统准备
    操作系统为CentOS 6.5 64bit
    IP:192.168.0.13
    主机名:source
 
1.3. MySQL软件准备
mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
 
2.安装前系统环境配置调整
2.1. 关闭SELinux
2.2. 关闭系统防火墙
2.3. 调整I/O调度系统为deadline模式
2.4. swap分区的设置
2.5. 操作系统的限制
2.6. 关闭numa
 
此部分略,可参考之前发布的一篇文章来配置
centos6.5上安装mysql 5.7.20
 
3.MySQL安装规划
软件包目录:/opt/soft
MySQL家目录 /usr/local
MySQL数据目录 /data/mysql1 /data/mysql2
配置文件目录 /etc/my1.cnf /etc/my2.cnf
实例1端口 3306
实例2端口 3307
 
4.创建目录
mkdir -p /opt/soft
mkdir -p /data/mysql1
mkdir -p /data/mysql2
 
5.创建MySQL用户
useradd mysql1 -s /sbin/nologin
passwd mysql1
 
useradd mysql2 -s /sbin/nologin
passwd mysql2
 
–密码为oracle123
 
6.安装MySQL软件
cd /opt/soft
 
tar -xzf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
 
mv mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql-5.7.20-linux-glibc2.12-x86_64_1
 
cd /usr/local
 
cp -r mysql-5.7.20-linux-glibc2.12-x86_64_1 mysql-5.7.20-linux-glibc2.12-x86_64_2
 
ln -s mysql-5.7.20-linux-glibc2.12-x86_64_1 mysql1
ln -s mysql-5.7.20-linux-glibc2.12-x86_64_2 mysql2
 
chown -R mysql1:mysql1 /usr/local/mysql1
chown -R mysql2:mysql2 /usr/local/mysql2
 
chown -R mysql1:mysql1 /data/mysql1
chown -R mysql2:mysql2 /data/mysql2
 
7.编辑参数文件
vi /etc/my1.cnf
 
[client]
port = 3306
socket = /tmp/mysql1.sock
 
[mysql]
prompt="u@db R:m:s [d]> "
no-auto-rehash
 
[mysqld]
user = mysql1
port = 3306
basedir = /usr/local/mysql1
datadir = /data/mysql1
socket = /tmp/mysql1.sock
pid-file= /tmp/mysql3306.pid
 
vi /etc/my2.cnf
 
[client]
port = 3307
socket = /tmp/mysql2.sock
 
[mysql]
prompt="u@db R:m:s [d]> "
no-auto-rehash
 
[mysqld]
user = mysql2
port = 3307
basedir = /usr/local/mysql2
datadir = /data/mysql2
socket = /tmp/mysql2.sock
pid-file= /tmp/mysql3307.pid
 
说明:需要加socket参数,否则启动第二个实例报错,无法启动第二个实例。
 
8.mysql数据库初始化
cd /usr/local/mysql1/bin
./mysqld --initialize --user=mysql1 --basedir=/usr/local/mysql1 --datadir=/data/mysql1
 
cd /usr/local/mysql2/bin
./mysqld --initialize --user=mysql2 --basedir=/usr/local/mysql2 --datadir=/data/mysql2
 
9.修改登录密码
–跳过权限表,启动mysql实例
/usr/local/mysql1/bin/mysqld_safe --user=mysql1 --port=3306 --socket=/tmp/mysql1.sock --pid-file=/tmp/mysql3306.pid --basedir=/usr/local/mysql1 --datadir=/data/mysql1 --skip-grant-tables &
 
/usr/local/mysql2/bin/mysqld_safe --user=mysql2 --port=3307 --socket=/tmp/mysql2.sock --pid-file=/tmp/mysql3307.pid --basedir=/usr/local/mysql2 --datadir=/data/mysql2 --skip-grant-tables &
 
本地连接mysql实例
mysql -uroot -P 3306 --protocol=tcp -p
mysql -uroot -P 3307 --protocol=tcp -p
以–skip-grant-tables跳过权限表,启动mysql实例,登录连接数据库时,输入错误密码或者空密码,都可以登录mysql数据库。
 
use mysql
select Host,user,authentication_string,password_expired from user;
update user set password_expired=‘N’ where user=‘root’;
#修改root用户的密码为永不过期
 
update user set authentication_string=password(‘oracle123’) where user=‘root’;
#修改localhost对应root用户的密码为oracle123
flush privileges;
 
10.启动和关闭mysql实例
杀掉mysql进程,然后重启mysql实例
ps -ef|grep mysql
kill -9 进程号
 
–启动mysql实例
/usr/local/mysql1/bin/mysqld_safe --defaults-file=/etc/my1.cnf &
/usr/local/mysql2/bin/mysqld_safe --defaults-file=/etc/my2.cnf &
 
进程如下:
 
[root@source ~]# ps -ef|grep mysql
root       6449   2826  0 18:09 pts/0    00:00:00 /bin/sh /usr/local/mysql1/bin/mysqld_safe --defaults-file=/etc/my1.cnf
mysql1     6592   6449  3 18:09 pts/0    00:00:00 /usr/local/mysql1/bin/mysqld --defaults-file=/etc/my1.cnf --basedir=/usr/local/mysql1 --datadir=/data/mysql1 --plugin-dir=/usr/local/mysql1/lib/plugin --user=mysql1 --log-error=source.err --pid-file=/tmp/mysql3306.pid --socket=/tmp/mysql1.sock --port=3306
root       6622   2826  0 18:09 pts/0    00:00:00 /bin/sh /usr/local/mysql2/bin/mysqld_safe --defaults-file=/etc/my2.cnf
mysql2     6765   6622  4 18:09 pts/0    00:00:00 /usr/local/mysql2/bin/mysqld --defaults-file=/etc/my2.cnf --basedir=/usr/local/mysql2 --datadir=/data/mysql2 --plugin-dir=/usr/local/mysql2/lib/plugin --user=mysql2 --log-error=source.err --pid-file=/tmp/mysql3307.pid --socket=/tmp/mysql2.sock --port=3307
root       6797   2826  0 18:09 pts/0    00:00:00 grep mysql
[root@source ~]#
–关闭mysql实例
/usr/local/mysql1/bin/mysqladmin --defaults-file=/etc/my1.cnf -uroot -poracle123 shutdown
/usr/local/mysql2/bin/mysqladmin --defaults-file=/etc/my2.cnf -uroot -poracle123 shutdown
 
11.创建数据库帐号
分别在两个实例都创建如下用户:
grant all privileges on   .  to ‘root’@’%’ identified by ‘oracle123’;
flush privileges;
 
12.连接mysql实例
本地:
mysql -uroot -P 3306 --protocol=tcp -p
mysql -uroot -P 3307 --protocol=tcp -p
 
远程:
mysql -h292.168.0.13 -P 3306 -uroot -p
mysql -h292.168.0.13 -P 3307 -uroot -p

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读