同一台机器上配置两个MySQL实例
发布时间:2022-03-25 11:17:33 所属栏目:MySql教程 来源:互联网
导读:摘要:实际环境中,为充分利用硬件资源,同一台机器上可能运行多个mysql实例,本文分享一种实现方法。 1.虚拟机准备 1.1. VMware Workstation Pro 12.1 内存:建议至少2G 硬盘:建议至少40G,动态分配 1.2. 操作系统准备 操作系统为CentOS 6.5 64bit IP:192.
摘要:实际环境中,为充分利用硬件资源,同一台机器上可能运行多个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 (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |