网上有不少关于mysql安装的文章,但是在我的某一次安装过程中,还是没能查到任何解决问题的方法。所以我这里还是写下基本的安装流程和所遇到的坑。 一下内容仅针对Linux下tar.gz包这种安装形式,要是使用yum或者apt来安装,就不会有档事情。

安装流水

  1. 官网下载相关的tar.gz包,本文采用的是mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz这个版本。

  2. 解压,移动改名到/usr/local/mysql,推荐就用这路径吧,不然可能需要其他的一些额外配置。

  3. 进行初始化工作,找到bin目录下的mysqld,配合参数运行它,参数示例:--initialize-insecure --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

  4. 初始化完成后就可以使用在support-files目录下的mysql.server这个文件来操作,当然直接用bin目录下的mysqld也没什么问题,但是给你封装好了岂不是美滋滋么。把这个文件拷贝到/etc/init.d目录下并改名为mysqld,就可以以service mysqld start|stop|restart|status的形式来控制mysql服务。

坑点

首先5.7.18以后的版本不提供my-default.cnf这个默认的配置文件,我其实不是很理解他们为啥这么搞,虽然有官方的说明,但是懒得看了。。然后初始化后可能会在/etc目录下生成一个my.cnf,如果没有请网上查一份拷贝一下,需要注意的是,如果是以上述方式启动mysql,不能在my.cnf中的client和mysqld部分下添加某些参数,例如socket、datadir、basedir等,否则会报错无法启动。这个真的有点坑,我在网上任何文章中都没有发现相关字眼。

原因的话,没有深究,不过启动mysql成功后,由ps命令查看进程,会发现mysql这一项启动的时候是带了许多参数的,这些参数都不应该出现在my.cnf中。