在Linux安装两个MySQL5.7数据库实例
前言
最近某小伙伴要求我在centos7上安装MySQL,安装好后,又要求我卸载再安装到一个新的目录下,所以我选择新建立一个/app/目录,把所有的数据库文件放在该目录下
使用MySQL版本:mysql-5.7.32
centos版本:7.6
安装包链接:https://pan.baidu.com/s/1IIA9cNvSSmFbtOBe9P3QFw
提取码:32zx
安装路径示意图
当我们想要部署一个数据库时,第一时间一定不是直接登录服务器就开始干,而是要先规划好安装路径
一、卸载旧版
一定要卸载干净!!
1、删除MySQL的安装文件
查询MySQL的安装文件
find / -name mysql
卸载:
mv /usr/local/env/mysql/mysql /tmp
2、删除MySQL的配置文件
删除/etc/my.cnf文件
mv /etc/my.cnf /tmp
删除/etc/init.d/下跟mysql有关的全部文件,一般包括mysql文件或mysqld文件。
mv /etc/init.d/mysql /tmp
mv /etc/init.d/mysqlId /tmp
3、删除MySQL用户和用户组
userdel mysql
4、卸载MariDB
小声BB:明明MariDB和MySQL是兄弟,但服务器安装其他第三方时,老是因为这两哥们同时存在而报错,所以建议大家二选一安装(MariDB或MySQL)
#查看是否存在mariadb数据库
rpm -qa|grep mariadb#删除
rpm -e --nodeps mariadb文件名全称#例如:
rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64
二、开始安装
1、前期准备
先将要tar包上传到/app/mysql
目录里
mkdir -p /app/mysql
cd /app/mysql
然后进行解压
tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz #解压5.7
把解压的安装包重命名一下为my_3306
mv mysql-5.7.32-linux-glibc2.12-x86_64 my_3306
把mysql的指令加入系统配置文件中,后面再次使用mysql相关指令时,不用进入MySQL的bin目录里面也可以执行
echo 'export PATH=/app/mysql/my_3306/bin:$PATH' >> /etc/profile
. /etc/profile #重新加载profile文件
添加用户、用户组
groupadd mysql
useradd -r -g mysql mysql
检查是否安装libaid
rpm -qa |grep libaio
若没有安装,使用如下命令安装:
yum search libaio
yum install libaio-devel.x86_64 -y# 安装8.0需要加上
yum -y install numactl
2、配置my3306.cnf文件
提示:一般是建立my.cnf配置文件,这里用于区分,我命名为my3306.cnf
配置文件
可以放到解压到的文件夹里,注意~该文件权限是644
mkdir -pv /app/mysql/my_3306/etc/
touch /app/mysql/my_3306/etc/my3306.cnf
#配置文件权限
chmod 644 /app/mysql/my_3306/etc/my3306.cnf
cat > /app/mysql/my_3306/etc/my3306.cnf <<EOF
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
#指定路径
socket=/tmp/mysql3306.sock
#指定pid存放路径
pid_file=/app/data/data_3306/data/my3306.pid
#设置MySQL的安装目录
basedir=/app/mysql/my_3306
#设置MySQL数据库的数据的存放目录
datadir=/app/data/data_3306/data
#character config
character_set_server=utf8mb4
explicit_defaults_for_timestamp=true
symbolic-links=0#log日志
log-error=/app/data/data_3306/logs/mysql3306.err
log_bin=/app/data/data_3306/binlog/mysql-bin
relay_log=/app/data/data_3306/relaylog/relay-bin
slow_query_log_file=/app/data/data_3306/logs/slow.log
slow_query_log=on#这里的server-id是用于标识主从复制库的
server-id=1#innodb settings
innodb_buffer_pool_size=128M
#无密码登录
skip-grant-tables
#开启PGID
gtid-mode=on
enforce-gtid-consistency=true
log-slave-updates=1[mysql]
prompt="(\\u@\\h :\D)[\\d]> "
socket=/tmp/mysql3306.sock
no-auto-rehash#增强密码安全强度
plugin-load-add=validate_password.so
validate-password=FORCE_PLUS_PERMANENT
EOF
3、创建data文件夹及其下面的mysql目录
#在data里建立这个四个目录,用于存储.cnf指定的路径
mkdir -pv /app/data/data_3306/{binlog,logs,data,relaylog}
将MySQL安装包目录和data目录下的所有所属用户和组改为MySQL
chown -R mysql:mysql /app/data/data_3306
chown -R mysql:mysql /app/mysql/my_3306
4、mysql初始化
cd /app/mysql/my_3306/bin#初始化,指定刚才建立的cnf文件即可
mysqld --defaults-file=/app/mysql/my_3306/etc/my3306.cnf --initialize-insecure#更详细的初始化命令
mysqld --defaults-file=/app/mysql/my_3306/etc/my3306.cnf --initialize-insecure --user=mysql --basedir=/app/mysql/my_3306 --datadir=/app/data/data_3306/data-- 参数解释
--initialize-insecure
--initialize : 给root@'localhost'用户生成一个临时密码。四种复杂度的12位密码。这个密码只能第一次登录使用,并且登录后无法CRUD数据库,需要改密后才行#如果未能启动成功,把之前部分初始化的数据清空,然后再初始化一次,已经初始化成功,这条指令请忽略
rm -rf `ls /app/data/data_3306 |awk '{print $1"/*"}'`
查看初始密码:(如果在my3306.cnf配置文件里,加了skip-grant-tables
参数,则查看不到登录密码)
#若执行此命令,没有显示密码信息,则在后面登录msyql输入密码的时候,回车即可
cat /app/data/data_3306/logs/mysql3306.err |grep password
5、启动mysql
#启动方法一
mysqld_safe --defaults-file=/app/mysql/my_3306/etc/my3306.cnf &#启动方法二
mysqld_safe --defaults-file=/app/mysql/my_3306/etc/my3306.cnf --basedir=/app/mysql/my_3306 --datadir=/app/data/data_3306/data &#关闭数据库,这里只是记录,不用执行
mysqladmin -S /tmp/mysql3306.sock -u root -p shutdown #接下来输入root用户的密码即可关闭数据库
查看是否启动:
ps -ef|grep mysql
mysql> show global variables like 'port'; -- 查看当前端口号
三、登录MySQL
1、登录
mysql -S /tmp/mysql3306.sock -P 端口号 -u root -p
回车即可进入#小技巧,可以把启动命令设置为别名,下次登录输入my3306即可
#永久设置:vim /etc/bashrc ,在最末尾加上alias语句即可
echo "alias my3306='mysql -u root -p -S /tmp/mysql3306.sock'" >> /etc/bashrc
. /etc/bashrc #重新加载文件
2、修改密码
依次执行:
flush privileges; -- 手动启用授权模式
grant all on *.* to root@'localhost' identified by '123'; -- 5.7修改本地密码
grant all on *.* to root@'%' identified by '123'; -- 5.7修改远程登录的密码
flush privileges; -- 再执行一次,修改密码成功,退出再登录时,需要输入新密码即可登录-- 想再创建新的用户
create user dbatao@'%' identified WITH mysql_native_password BY '123';
grant all privileges on *.* to root@'%' with grant option;
flush privileges;
3.3306端口数据库安装完成
安装完成,想再安装一个新的实例的小伙伴请接着看第四点
。
四、新建一个数据库(3307端口)
下面,咱们快速
在本机上再创建一个数据库实例,冲冲冲!
1、快速部署
使用相同的方式,建立一个新的3307端口的数据库,步骤相同
#修改my3307.cnf配置文件中
cp -ar /app/mysql/my_3306 /app/mysql/my_3307
mv /app/mysql/my_3307/etc/my3306.cnf /app/mysql/my_3307/etc/my3307.cnf
sed -i 's/3309/3307/g' /app/mysql/my_3307/etc/my3307.cnf#在data里建立这个四个目录,用于存储.cnf指定的路径
mkdir -pv /app/data/data_3307/{binlog,logs,data,relaylog}
chown -R mysql:mysql /app/data/data_3307
chown -R mysql:mysql /app/mysql/my_3307#初始化,指定刚才建立的cnf文件即可
mysqld --defaults-file=/app/mysql/my_3307/etc/my3307.cnf --initialize-insecure
#启动
mysqld_safe --defaults-file=/app/mysql/my_3307/etc/my3307.cnf &
#查看是否启动
ps -ef|grep 3307
ss -lntup |grep 3307
2、登录
mysql -S /tmp/mysql3307.sock -P 端口号 -u root -p
回车即可进入#小技巧,可以把启动命令设置为别名,下次登录输入my3307即可
#永久设置:vim /etc/bashrc ,在最末尾加上alias语句即可
echo "alias my3307='mysql -u root -p -S /tmp/mysql3307.sock'" >> /etc/bashrc
. /etc/bashrc #重新加载文件
修改密码
flush privileges; -- 手动启用授权模式
grant all on *.* to root@'localhost' identified by '123'; -- 5.7修改本地密码
grant all on *.* to root@'%' identified by '123'; -- 5.7修改远程的登录密码
flush privileges; -- 再执行一次,修改密码成功,退出再登录时,需要输入新密码即可登录
五、远程登录
在我们登录数据库,赋予root用户能远程链接的清空下,发现还是不能用navicat连接,那我们需要做一下步骤,来来来,最后一步了~
1、先关闭防火墙
systemctl status firewalld.service #查看防火墙状态
systemctl restart firewalld.service #重启防火墙systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
2、关闭SELinux
#临时关闭SELinux
setenforce 0#查看SELinux状态
getenforce#关闭开机自SELinux
编辑/etc/selinux/config文件
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
3.登录阿里云或者腾讯云平台,设置安全组
如果是自己搭建的本地虚拟机,忽略此步
六、总结
这篇初稿是2021年7月就发布了,今天突然回来再看看,发现当时的自己太随便了,直接笔记一放就完事了,埋下了一堆的坑,给自己借鉴的小伙伴们说一声“抱歉”,放心,现在修改过的这篇,经过测试,按照本文最前面的示意图部署的路径,可放心食用
在Linux安装两个MySQL5.7数据库实例相关推荐
- Linux安装达梦8国产数据库
Linux安装达梦8国产数据库 1,修改文件配置 1)创建用户和组(使用root用户) 创建数据库软件安装用户组:dinstall groupadd -g 12349 dinstall 创建安装用户d ...
- linux安装或卸载mysql5,Linux环境下卸载、安装及配置MySQL5.1
Linux环境下卸载原有MySQL5.1数据库,并重新安装MySQL数据库的示例记录. 一.卸载MySQL 查看主机中是否安装了MySQL数据库: [root@RD-viPORTAL-1 ~]# rp ...
- Linux安装mysql(mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar)(万能解决登录问题,最详细教程)
1.下载mysql 官网地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads 注意事项: (1)下载的安装包必须是.rpm-bundl ...
- linux安装两个jdk_jdk在linux上安装过程
虚拟机JDK Java虚拟机是运行所有Java程序的抽象计算机,是Java语言的运行环境. Java虚拟机就是一台虚拟的计算机,有自己的CUP处理器.内存,还具有相应的指令系统.Java虚拟机屏蔽了与 ...
- linux sqlplus 查询数据,Linux安装sqlplus及shell查询数据库
下载rpm文件,安装orcacle sqlplus rpm –ivh oracle-instantclient-basic-10.2.0.4-1.i386.rpm rpm –ivh oracle-in ...
- linux安装两个独立显卡驱动,Manjaro Linux 双显卡安装步骤及独立显卡运行游戏(Nvidia GeForce GTX 980m)...
manjaro是基于Arch Linux的一个发行版,继承了Arch滚动更新的特点,也可用使用AUR上大量的软件,开箱即用. 安装manjaro是十分简单的事,但对于双显卡的支持来说,还是存在BUG, ...
- linux下安装两个tomcat,linux安装两个tomcat-Go语言中文社区
解压apache-tomcat-7.0.86.tar.gz,把解压后的复制一份 修改/etc/profile文件:vim /etc/profile#################我添加的start# ...
- DM达梦数据库在linux环境命令行创建注册数据库实例
一.创建数据库 使用dminit创建数据库,位于安装目录的bin目录下(如:软件安装在 /data/dmdbms 下,则该工具位于 /data/dmdbms/bin 下) cd /data/dmdbm ...
- linux安装南大通用数据库 GBase 8s V8.8
linux安装南大通用数据库 GBase 8s V8.8 1.操作系统.数据库 2.下载链接 3.安装文档 4.安装前准备 4.1.以root用户创建 gbasedbt 组和用户 4.2.创建 GBa ...
最新文章
- 东北师大计算机考研报名人数,东北师范大学考研难吗?一般要什么水平才可以进入?...
- OpenCV中的全景拼接例程
- 设计模式之三 装饰模式
- 浅谈数据中心集成的优势
- [ATF]-smc指令详解
- 《2022博客之星拉票专用帖》
- 计算机视觉与深度学习 | 对恐怖袭击事件记录数据的量化分析(附源代码):博主的机器学习首秀(研究生数学建模二等奖)
- linux编译cmake
- QString与中文问题
- QT示例:基于TCP 点对多Socket通讯(server,clients)
- float right不生效_【工具篇】程序员不愿意写 PPT 是姿势不对?
- 图的最短路算法(Dijkstra和Floyd-Warshall)
- 1.VBA实现EXCEL中Sheet1的 甲列 相同数值的行对应的乙列的数的和作为Sheet2中丙列中与Sheet1中甲列 相同的行对应的丁列的值...
- java序列化和反序列化练习
- 瑞星2008序列号正确号码
- linux msgctl清除缓存,linux消息队列
- Android 中的 ClassLoader 摘抄笔记
- win10计算机联接多个网络,win10两台电脑连接局域网的详细操作教程
- Opcode指令解析
- python线性回归实例 x轴坐标相同_python深度学习-tensorflow实现一个线性回归的案例...