云计算学习100天-第51天-MySQL数据库学习7
目录
MySQL多实例
概念
在一台物理主机上运行多个数据库服务叫多实例
Socket文件:访问本机mysql服务(自己访问自己)时通过socket建立连接
当启动mysqld服务时会自动创建,当停止mysqld服务时会自动删除
优点
节约运维成本
提高硬件利用率
比如有一个游戏网站和一个购物网站要跑,可以在一个服务器上跑两个网站,硬件要求比较高,可以用多实例来实现。
命令
启动服务——首次启动服务会创建root登录初始密码
/usr/local/mysql/bin/mysqld_multi start 实例编号
停止服务
/usr/local/mysql/bin/mysqld_multi –user=root –password=密码 stop 实例编号
案例
操作步骤
1、安装依赖 添加用户
yum –y install libaio # libaio 是Linux系统提供的异步I/O库
useradd mysql
tar –zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql
2、检查有没有my.cnf,有就删除
ls /etc/my.cnf
rm –rf /etc/my.cnf
3、重新创建my.cnf,配置多实例
vim /etc/my.cnf
[mysqld_multi] #多实例服务的主配置
mysqld=/urs/local/mysql/bin/mysqld_safe #指定进程文件路径
mysqladmin=/usr/local/mysql/bin/mysqladmin #指定管理命令路径
user=root #指定进程用户
[mysqld1] #实例1,固定格式
datadir=/dir1 #数据库目录
port=3307 #默认端口,不要用3306 范围是1024-65536
pid-file=/dir1/mysqld1.pid #存放服务进程PID号的文件,文件名称就是实例名
log-error=/dir1/mysqld1.err #错误日志文件位置,文件名称就是实例名
socket=/dir1/mysqld1.sock #指定socket文件的路径和名称,文件名称就是实例名
[mysqld2] #实例2,固定格式
datadir=/dir2
port=3308
pid-file=/dir2/mysqld2.pid
log-error=/dir2/mysqld2.err
socket=/dir2/mysqld2.sock
4、启动实例1
#dir1目录会自动创建
/usr/local/mysql/bin/mysqld_multi start 1
#注意最后显示的是随机生成的root用户的初始密码
…
… for root@localhost: gryhkM9-W&1D
5、用初始密码登录实例
ls /dir1/
netstar –utnlp | grep mysqld
#看到3307端口
#登录需要指定socket文件
mysql –uroot –p ‘gryhkM9-W&1D’ –S /dir1/mysqld1.sock
#修改密码
mysql> alter user root@”localhost” identified by “123456”;
mysql> exit
#重新登录后,创建个新表
mysql –uroot –p ‘123456’ –S /dir1/mysqld1.sock
mysql> create database gamedb;
mysql> create table gamedb.user(name char(10));
mysql> exit
6、启动实例2
#dir2目录会自动创建
/usr/local/mysql/bin/mysqld_multi start 2
#注意最后显示的是随机生成的root用户的初始密码
…
… for root@localhost: =y(a&amz0Z26#
7、用初始密码登录实例
ls /dir2/
netstar –utnlp | grep mysqld
#看到3308端口
#登录需要指定socket文件
mysql –uroot –p ‘=y(a&amz0Z26#’ –S /dir2/mysqld2.sock
#修改密码
mysql> alter user root@”localhost” identified by “123456”;
mysql> exit
#重新登录后,创建个新表
mysql –uroot –p ‘123456’ –S /dir2/mysqld2.sock
mysql> create database buydb;
mysql> create table buydb.user(name char(10));
mysql> exit
8、停止服务
/usr/local/mysql/bin/mysqld_multi –user=root –password=’123456’ stop 2
更多推荐



所有评论(0)