同一个服务器上装两台mysql的脚本
#!/bin/bash
#本脚本是在同一个服务器上装两台mysql,版本是5.7,二进制安装,无密码,密码后续自己加就好
#数据存放安装目录
uu=/data
echo "卸载包和安装依赖包"
yum remove mariadb-libs -y
useradd mysql -s /sbin/nologin
echo "创建目录"
mkdir -p ${uu}/3308/data
mkdir -p /var/log/3308
mkdir -p ${uu}/3309/data
mkdir -p /var/log/3309
echo "授权目录"
chown -R mysql.mysql ${uu}/3308/
chown -R mysql.mysql ${uu}/3309/
chown -R mysql.mysql /var/log/3308
chown -R mysql.mysql /var/log/3309
echo "获取mysql包"
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
echo "开始解压"
tar -xf ./mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
echo "解压完成,开始移动"
mv ./mysql-5.7.30-linux-glibc2.12-x86_64 /usr/local/mysql
echo "移动重命名完成"
echo "export PATH=/usr/local/mysql/bin:\$PATH" >> /etc/profile
source /etc/profile
echo "配置文件添加完成"
yum install libaio-devel -y
echo "创建配置文件3308"
cat > ${uu}/3308/my.cnf << EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=${uu}/3308/data
server_id=2218
log-error=/var/log/3308/error.log
pid-file=${uu}/3308/mysql.pid
port=3308
socket=${uu}/3308/mysql3308.sock
[mysql]
socket=${uu}/3308/mysql3308.sock
EOF
echo "创建配置文件3309"
cat > ${uu}/3309/my.cnf << EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=${uu}/3309/data
server_id=2219
log-error=/var/log/3309/error.log
pid-file=${uu}/3309/mysql.pid
port=3309
socket=${uu}/3309/mysql3309.sock
[mysql]
socket=${uu}/3309/mysql3309.sock
EOF
echo "初始化3308"
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=${uu}/3308/data --basedir=/usr/local/mysql
echo "初始化3309"
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --datadir=${uu}/3309/data --basedir=/usr/local/mysql
echo "创建启动脚本3308"
cat > /etc/systemd/system/mysqld3308.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=${uu}/3308/my.cnf
LimitNOFILE = 5000
EOF
echo "创建启动脚本3309"
cat > /etc/systemd/system/mysqld3309.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=${uu}/3309/my.cnf
LimitNOFILE = 5000
EOF
echo "重新加载systemctl"
source /etc/profile
systemctl daemon-reload
echo "启动"
systemctl start mysqld3308.service
systemctl start mysqld3309.service
cat >> /root/.bashrc << EOF
alias mysql8='mysql -S ${uu}/3308/mysql3308.sock'
alias mysql9='mysql -S ${uu}/3309/mysql3309.sock'
EOF
source /root/.bashrc
#使用的时候,如进入3308数据库,则 执行:mysql8
#有时候如果第一次安装失败,第二次再次安装的时候没有清理干净,如/root/.bashrc 文件里加入了两次的命令别名,可能呢导致这个 mysql8 命令不好用,到里面清除重复的别名就好
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理