mysql多实例多版本安装(5.7+8.0)报错记录
报错记录
今天尝试在centos7上安装多实例mysql(5.7+8.0),安装过程中出现错误并得到解决,记录一下。
错误场景
在安装多实例的8.0版本时,由于不知原因的错误,在过程中遇到两个问题: 1. 在已知目标文件夹为空的情况下,初始化过程中报错,提示目标路径不为空。 2. 初始化数据库目录成功的情况下,没有生成对应的"mysql.sock**"文件,导致数据库无法启动。
解决方法
不使用mysqld对数据库进行初始化,利用mysqld_multi直接根据my.cof文件参数进行数据库初始化。
解决步骤
1. 修改my.cof文件中对应的参数,其中mysqld3版本与之前相同,mysqld80版本为8.0版本所以需要特别指定 basedir的路径。
[mysqld3]
server-id = 13
port = 3309
datadir = /data/testdata3
socket = /tmp/mysql.sock3
[mysqld80]
server-id = 18
port =3380
basedir = /usr/local/mysql80/
datadir = /data/testdata80
socket= /tmp/mysql.sock80
port = 3380
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
log = /usr/local/mysql/mysqld_multi.log
2. 重启mysql服务
service mysqld restart
3. 利用mysqld_multi直接初始化数据库
mysqld_multi start
根据上述指令操作完成后,多实例多版本的数据库全部初始化完成,5.7以上版本系统会自动设定初始密码,可以去到对应的error.log中查看,再登录数据库之后修改密码即可。
[root@iZuf6dyodvhcv910ay6a2cZ testdata80] mysqld_multi report
Reporting MySQL servers
MySQL server from group: mysqld1 is running
MySQL server from group: mysqld2 is running
MySQL server from group: mysqld3 is running
MySQL server from group: mysqld80 is running
总结
尚未找到无法直接初始化的原因,但是用此方法进行初始化的数据库可以正常使用,先做记录,后面如有发现再更新。
|