相对于其他数据库,mysql的安装无论是windows平台还是linxu都是比较简单的。个人觉得,在window系统安装mysql,最好的方式就是使用安装程序,也即是安装版,因为有良好的向导,相依性的检查和执行都不需要管。而在linux系统中,最好的方式就是解压即用,也即是解压版,因为此方式对系统的修改最少,受到环境因素的干扰最少。不管什么方式,都是遵循简单可靠的原则即可。
mysql最新版的官网下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
如果新的项目,推荐mysql5.7或更新版本,因为它比老版本的配置文件更少,更容易配置和管理,安装方式更加自动化。
这里使用的是redhat linux7,或者CentOS7也可以,在下载mysql的时候需要注意,redhat系列的linux和其他系列linux通用的压缩包是有区别的:
redhat7以前的版本不支持这解压版,所以如果你的是redhat6就只能使用通用包:
generic:
linux系统安装软件和windows有一个较大的区别,重复安装在windows中大多数软件都可以直接覆盖安装,系统会自动帮你处理注册信息,但是在linux中你需要自行处理非常多的遗留文件,为了方便处理,这也是为什么我推荐使用解压版的原因,因为它的文件不会分散到各个文件夹中。诸如mysql这种重量软件,安装过程多数是不可逆的,如果因为没有将系统环境预先处理妥当,,返工安装成功的几率并不大。
确保如下几个目录没有mysql有关的文件和目录:
my.cnf是mysql的配置文件,部分linux系统可能自带该文件,先删除掉。因为5.7版本中,如果你使用mysql默认设置,无须此文件。
检查其余的几个目录和文件,通常是不存在的,那么可以全新安装mysql了。
这步不多说了,基本操作,但是规范来讲,通常将mysql主目录放在/usr/local/mysql,其效果和windows中的program files文件夹类似。
使用软连接将mysql完整目录转义为mysql,因为源目录还有保留的需要,当你要切换版本只需要修改链接即可。
创建mysql-files目录,其作用是为secure_file_priv系统变量的值的导入和导出到限定目录提供方便。
mysql5.7依赖于libaio,在redhat下可以通过yum快速安装,不过redhat和mysql相依性比较好,通常会自带此框架。
另外,如果你的是5.7.19或更新版本的mysql,是支持非均匀内存访问(NUMA)的,它现在依赖于libnuma 库,你可以用同样的方式安装。
到了这一步,你就最好不要动mysql的目录了,更不要轻易执行mysql的脚本,mysql通过mysql组和一个mysql用户来执行安装,因此需要先创建对应的组和用户。
mysql的bin目录下有各种执行命令,包括初始化库和启动,我们只需要执行所需的命令脚本即可,新版本的mysql命令已经相当智能了,需要手动的操作很少。
以mysql用户进行初始化,这一步会根据默认配置创建mysql的系统库并进行相关的初始化。注意执行完后会产生一个随机的root用户初始密码,将它记下来:
安装SSL
使用mysql用户启动mysql服务,看到守护进程启动了,说明启动成功
不过这个时候查看还不方便,将mysql守护线程设置成系统服务,在support-files目录下提供了默认启动脚本,通常我们使用默认脚本:mysql.server
为了方便使用mysql的命令,将mysql的bin目录加入系统变量,当然,下面的做法是临时的,终端关了就会失效,但是个人认为结合实际情况选择临时的还是永久添加。
然后你可以通过root用户和刚刚的默认密码登录mysql了,建议第一时间修改默认密码,不为别的,至少你不会想每次都使用这么挫的默认密码吧。到这里,登录成功,mysql安装已经完成。
而其实你现在的root用户几乎没有能够执行的命令,原因是默认密码一登录就失效了
可以参考另一篇:linux mysql5.7及之后版本root用户密码过期(You must reset your password using ALTER USER)解决办法,简单的几个步骤之后就可以愉快的使用mysql了。