一台服务器部署两个独立的mysql数据库操作实例,
目录
- 1 背景
- 2 安装MySQL
- 2 进行mysql安装
- 3 配置搭建3306、3307实例
- 4 设置mysql系统环境变量
- 5 分别初始化两个mysql数据库:
- 6 登录两个mysql
- 6 扩展
- 总结
1 背景
公司进行压测和业务测试时候资源有限,两个环境都部署在一台服务器上,但是需要为了做业务测试不影响到压测测试,所有业务测试调用数据库要和压测的库分开。
这个时候就需要在这台服务器上部署两个mysql实例,然后分别有不同的配置文件,调用不同的数据文件。这样顶多需要考虑服务器的性能问题而已,两组测试互不干扰。
2 安装MySQL
先看看是否已安装过(自带),如果已安装过,先卸载干净;然后检查安装环境是否支持,重新安装;
# 先查找一下系统有没有mysql包,以免影响后续安装使用 [root@xiaopeng ~]# rpm -qa | grep mysql #没有输出任何内容说明没有mysql包 [root@xiaopeng ~]# rpm -qa | grep mariadb #我的系统输出了如下两个包,那么就需要清理掉 mariadb-libs-5.5.68-1.el7.x86_64 mariadb-5.5.68-1.el7.x86_64 [root@xiaopeng ~]# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps [root@xiaopeng ~]# rpm -e mariadb-5.5.68-1.el7.x86_64 --nodeps [root@xiaopeng ~]# rpm -qa | grep mariadb #删除之后再查看就没有任何mariadb的包了 [root@xiaopeng ~]# [root@xiaopeng ~]# chmod -R 755 /tmp # 增加文件操作权限,安装MySQL后MySQL会用户在/tmp目录下新建tmp_db文件,需要给/tmp目录较大的权限操作 # 检查系统中是否存在一些安装MySQL时需要的依赖库 [root@xiaopeng ~]# rpm -qa|grep libaio #我的系统检查发现有libaio依赖包 libaio-0.3.109-13.el7.x86_64 [root@xiaopeng ~]# rpm -qa|grep net-tools #我的系统检查发现有net-tools依赖包(就是netstat命令) net-tools-2.0-0.25.20131004git.el7.x86_64 # 如果不存在则执行yum -y install libaio net-tools安装即可
2 进行mysql安装
# 首先创建mysql用户和用户组 [root@xiaopeng ~]# groupadd mysql #创建一个组,组名叫mysql [root@xiaopeng ~]# useradd -r -g mysql -s /bin/false mysql # 创建一个名为mysql的系统用户,该用户属于mysql组,但不能登录系统。主要用来安装和配置MySQL数据库服务时使用。 [root@xiaopeng ~]# cd /usr/local/ #进入安装目录 [root@xiaopeng local]# rz # rz命令可以将windows的包上传到linux的当前目前 #如果没有这个命令的话执行yum -y install lrzsz就能安装上这个命令了
进行解压缩
[root@xiaopeng local]# tar -zxf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz #解压缩这个包 [root@xiaopeng local]# mv mysql-5.7.35-linux-glibc2.12-x86_64 mysql #改名叫mysql
mysql服务安装完毕
3 配置搭建3306、3307实例
创建3306、3307不同实例的数据存放路径和配置等文件存放位置。
# 分别创建数据文件存放路径 [root@xiaopeng local]# mkdir -p mysql/3306/data [root@xiaopeng local]# mkdir -p mysql/3307/data # 分别创建日志存放路径 [root@xiaopeng local]# mkdir -p mysql/3306/log [root@xiaopeng local]# mkdir -p mysql/3307/log # 分别创建两个mysql的配置文件 [root@xiaopeng local]# vim mysql/3306/my.cnf [mysqld] port=3306 #实例1的服务端口为3306 user=mysql #用户名mysql basedir=/usr/local/mysql #mysql服务安装路径 datadir=/usr/local/mysql/3306/data #实例1的数据存放路径 lower_case_table_names=1 innodb_buffer_pool_size=128M socket=/tmp/mysql_3306.sock #sock文件最后放在此目录下,否则连接mysql的时候还需要--socket=路径来指定sock文件的位置,很麻烦 explicit_defaults_for_timestamp=true symbolic-links=0 log-error=/usr/local/mysql/3306/log/mysqld.log pid-file=/usr/local/mysql/3306/run/mysqld.pid character_set_server=utf8mb4 init_connect='SET NAMES utf8mb4' [root@xiaopeng local]# vim mysql/3307/my.cnf [mysqld] port=3307 #实例1的服务端口为3307 user=mysql #用户名mysql basedir=/usr/local/mysql #mysql服务安装路径 datadir=/usr/local/mysql/3307/data #实例1的数据存放路径 lower_case_table_names=1 innodb_buffer_pool_size=128M socket=/tmp/mysql_3307.sock #sock文件最后放在此目录下,否则连接mysql的时候还需要--socket=路径来指定sock文件的位置,很麻烦 explicit_defaults_for_timestamp=true symbolic-links=0 log-error=/usr/local/mysql/3307/log/mysqld.log pid-file=/usr/local/mysql/3307/run/mysqld.pid character_set_server=utf8mb4 init_connect='SET NAMES utf8mb4' # 修改整个目录及子文件的所有者所属组为mysql [root@xiaopeng local]# chown -R mysql:mysql /usr/local/mysql [root@xiaopeng local]# ll
[root@xiaopeng local]# cd mysql [root@xiaopeng mysql]# tree 3306 #想用tree命令查看一下目录结构,显示没有这个命令 -bash: tree: 未找到命令 [root@xiaopeng mysql]# yum -y install tree #那就下载一个 [root@xiaopeng mysql]# tree 3306 #再查看一下就显示了,配置文件和数据存放目录都完全隔离了 3306 ├── data └── my.cnf [root@xiaopeng mysql]# tree 3307 3307 ├── data └── my.cnf
4 设置mysql系统环境变量
# 设置系统环境变量 [root@xiaopeng mysql]# vim /etc/profile # 在文件末尾添加下面信息 export PATH=/usr/local/mysql/bin:$PATH [root@xiaopeng mysql]# source /etc/profile #加载一下使环境变量生效
5 分别初始化两个mysql数据库:
# 初始化3306实例数据库 # 指定配置文件的位置、安装目录、数据存放路径 # 注意,初始化结束的最后一行记录了root的密码,复制到记事本 [root@xiaopeng mysql]# /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/3306/my.cnf --initialize --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/3306/data [root@xiaopeng mysql]# /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/3306/my.cnf --initialize --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/3307/data # 启动数据库实例3306、3307并放入后台 [root@xiaopeng mysql]# nohup /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/3306/my.cnf --user=mysql & [root@xiaopeng mysql]# nohup /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/3307/my.cnf --user=mysql &
6 登录两个mysql
[root@xiaopeng mysql]# mysql -uroot -p'7VSb@4FUd^28U2KL' -h127.0.0.1 -p -P3306 #3VSb@4FUd^28U2KL为初始化结束后复制的密码 [root@xiaopeng mysql]# mysql -uroot -p'9dTJylD*4s2ARdtx' -h127.0.0.1 -p -P3307 #9dTJylD*4s2ARdtx为初始化结束后复制的密码
6 扩展
1、如果要修改root密码,使用如下命令
# 先登录到mysql中,然后执行如下命令 mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('新密码'); # 一定要注意括号引号分号等符号是英文格式的
2、如果sock文件放在了其他目录下
mysql -uroot -p'密码' -h 127.0.0.1 --socket=/usr/local/data/mysql/tmp/mysql.sock --port=3306 # --socket=后面跟上sock文件的绝对路径 # 备份3306中的xiaopenglinux数据库 mysqldump -uroot -p'密码' xiaopenglinux > /usr/local/data/mysql/mysqlBackups/xiaopenglinux.sql --socket=/usr/local/data/mysql/tmp/mysql.sock --port=3306 # 还原xiaopenglinux数据库到3307数据库中 mysql -uroot -p'密码' < xiaopenglinux.sql --socket=/usr/local/data/mysql/tmp/mysql.sock --port=3307
3、创建普通用户并赋予权限
create user lark_test@'%' identified by '0dAJylD*a3C8Rdtx'; show grants for "username"@"localhost"; # username 用户名 # localhost 用户的本地权限 show grants for "username"@"%"; # % 代表用户的外部连接权限 # ALL: 允许进行任何操作(拥有root权限) # USAGE: 只允许登录--无其他任何权限(一般新创建的用户是没有任何权限的) grant all privileges on *.* to '用户'@'127.0.0.1' identified by '密码'; # 赋予新用户,从本地操作所有数据库,所有数据表的所有权限 grant all privileges on *.* to 'chai'@'%' identified by '666666'; # 赋予新用户,从外部操作所有数据库,所有数据表的所有权限(没有外部客户端的IP限制,但本地有限制) flush privileges; #刷新权限,使权限立即生效
总结
到此这篇关于一台服务器部署两个独立的mysql数据库的文章就介绍到这了,更多相关服务器部署两个独立mysql内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友!
您可能感兴趣的文章:- 阿里云服务器安装Mysql数据库的详细教程
- mysql 实现迁移数据库到另一台服务器
- 详解如何在阿里云服务器安装Mysql数据库
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。