一台服务器安装两个mysql、重置数据库用于测试使用

文章目录

  • 一、切数据库数据存储文件夹
    • 已经存在数据库数据文件夹
    • 新建数据库数据文件夹
  • 二、安装第二个mysql
    • 安装新数据库
    • 初始化数据库数据
    • 启动数据库
    • 关闭数据库
  • 三、mysqld_multi单机多实例部署
  • 参考文档

一、切数据库数据存储文件夹

  • 这个方法可以让你不用安装新的数据库,就可以得到一个全新的一个数据库
  • 缺点:原来的数据库被暂停使用
  • 优点:数据切换速度快

已经存在数据库数据文件夹

  • 更改mysql配置文件
vim /etc/my.cnf

一台服务器安装两个mysql、重置数据库用于测试使用_第1张图片

  • 重启mysql
service mysqld restart

新建数据库数据文件夹

  • 使用data02为新的存储数据的地方
mkdir /usr/mysql/mysql-5.7.19/data02
  • 配置文件的datadir参数也更改成这个文件夹
vim /etc/my.cnf

在这里插入图片描述

  • 对数据库进行初始化
/usr/mysql/mysql-5.7.19/bin/mysqld --defaults-file=/etc/my-test.cnf --basedir=/usr/mysql/mysql-5.7.19 --datadir=/usr/mysql/mysql-5.7.19/data02/ --user=mysql --initialize
  • 查看初始化密码
tail -10 /usr/mysql/mysql-5.7.19/mysql.err
  • 重启数据库
service mysqld restart
  • 登录,密码输入初始化密码,上面保存的
mysql -u root -p
  • 修改密码
SET PASSWORD = PASSWORD('1111');
  • 更改账号使用的ip范围,%表示全部ip都能使用该账号
use mysql
update user set host = '%' where user = 'root';
  • 授权
GRANT ALL PRIVILEGES ON *.* TO root@"%";
  • 查询账号密码
select host, user from user;
  • 刷新权限
flush privileges;

二、安装第二个mysql

安装新数据库

  • 复制原来的mysql(可取,不建议),但是不能把数据库数据一起复制过去(不然很废服务器存储节点,而且复制速度可能变得很慢)
cp -r mysql-5.7.19 mysql-5.7.19-test
  • 用mysql解压包解压(建议,不会有冗余的数据)
tar -zvxf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.19-linux-glibc2.12-x86_64 mysql-5.7.19-test
  • 复制一份和第一个mysql相似的配置文件
cp /etc/my.cnf /etc/my-test.cnf
  • 修改配置文件,有6个参数需要修改
vim /etc/my-test.cnf

一台服务器安装两个mysql、重置数据库用于测试使用_第2张图片
一台服务器安装两个mysql、重置数据库用于测试使用_第3张图片

初始化数据库数据

  • 创建存储数据的文件夹
mkdir /usr/mysql/mysql-5.7.19-test/data
  • 给mysql用户授权新创建的文件夹
chown mysql:mysql -R /usr/mysql/mysql-5.7.19-test
  • 对数据库进行初始化
/usr/mysql/mysql-5.7.19-test/bin/mysqld --defaults-file=/etc/my-test.cnf --basedir=/usr/mysql/mysql-5.7.19-test --datadir=/usr/mysql/mysql-5.7.19-test/data/ --user=mysql --initialize
  • 查看初始化密码
tail -10 /usr/mysql/mysql-5.7.19-test/mysql.err

启动数据库

  • 使用mysqld_safe启动
/usr/mysql/mysql-5.7.19-test/bin/mysqld_safe --defaults-file=/etc/my-test.cnf &
  • 登录,密码输入初始化密码,上面保存的
mysql -S /tmp/mysql-test.sock -u root -p
  • 修改密码
SET PASSWORD = PASSWORD('1111');
  • 更改账号使用的ip范围,%表示全部ip都能使用该账号
use mysql
update user set host = '%' where user = 'root';
  • 授权
GRANT ALL PRIVILEGES ON *.* TO root@"%";
  • 查询账号密码
select host, user from user;
  • 刷新权限
flush privileges;

关闭数据库

/usr/mysql/mysql-5.7.19-test/bin/mysqladmin -S /tmp/mysql-test.sock -u root shutdown -p

三、mysqld_multi单机多实例部署

  • MySQL 单机多实例部署 多配置文件 mysqld_multi 两种方案

参考文档

  • 【Mysql】Linux环境下安装多个mysql
  • MySQL–mysqld、mysql_safe、mysql.server、mysqladmin几种启动和停止服务使用说明

你可能感兴趣的:(个人笔记,数据库,mysql)