最近有个需求,需要在linux服务器上部署10个mysql,用端口区分,在网上查了一大圈资料,基本上步骤不是有缺的就是不对,咱也不知道是版本问题啊,还是啥问题,反正我后来自己琢磨几个小时终于搞好了,而且网上没图,看着不爽,我来爽一个

首先来看下服务器上mysql服务

ps -ef|grep mysqld

 可以看到我之前已经部署了3307端口和3308端口的mysql,还有个3306的是别人的mysql而且版本也跟我不一样那我管不着

首先开始下载mysql

我是5.7.17版本的所以命令就是

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

下载过程就不截图了,因为我之前下载好了,就用通用部署的地方/usr/local/mysql文件夹里,我们到时候要在这里部署多个mysql按文件夹区分,这里看到我已经弄好了3307和3308,所以接下来准备3309

因为我的mysql都是用mysql用户来创建的,所以从root用户切换到mysql用户。(创建用户直接百度搜就可以了,两句话的事就不发了)

su mysql

切换mysql用户并解压安装包

tar zxvf 压缩包名

zxvf是解压tar.gz的,别的格式网上自己搜

解压完之后,重命名

mv 旧文件夹名 新文件夹名

在文件夹根目录下新建个my.cnf文件

因为我之前有了,所以直接复制3307他们改的

 输入 vi命令进入编辑

vi my.cnf

因为我们是堡垒机,不能用xshell只能干敲代码

输入i键进入编辑,全部换成3309

然后按ESC,再输入:wq进行保存退出

 

注意my.cnf文件里,上面指定3309得所有参数全是必须的

配置完自己单独的cnf后初始化mysql

命令文件夹对应上【这里有个坑,就是这个初始化命令网上一大堆,也是坑我好久的,我不知道是不是mysql版本有差异。总之我用他们写的命令初始化不是报错,就是没反应,我这个5.7.17版本的用这个命令好用,其他版本的可能自寻命令去

./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql3309 --datadir=/usr/local/mysql/mysql3309/data

--user 是当前用户名。我是mysql用户名所以写的mysql

--basedir 是你mysql的根目录

-- datadir 是你mysql的data目录

初始化后会有默认mysql的密码,一定要记住

之后启动mysql3309端口

./bin/mysqld_safe --defaults-file=/usr/local/mysql/mysql3309/my.cnf & 

mysql_safe启动,指定自己单独的my.cnf配置,这里注意,mysql_safe启动命令官方文档更新说明不许在bin目录下启动了,而是在根目录下用./bin去启动,出现我图片结果就成功了

 如果下面继续弹什么Exit或者别的日志可能就是失败了

用查询验证下是否启动成功

可以看到我的3309起来了

接下来登录mysql3309

/usr/local/mysql/mysql3309/bin/mysql -h 127.0.0.1 -uroot -P3309 -p

再输入上面初始密码登录,发现成功了

这里注意下,-h命令后必须ip,不能localhost -P就是你的端口

修改密码退出

set password=password('新密码');

至此,我们就单独部署了一个mysql实例,想要部署多个就按照流程配置端口去指定单独的my.cnf去启动

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐