这里我使用的是用通用的二进制文件安装,参考的链接如下:
MySQL :: MySQL 5.7 Reference Manual :: 2.2 Installing MySQL on Unix/Linux Using Generic Binaries
https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html
- 下载MySQL,我下载的是5.7的二进制包。
wget 'https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz'
- 解压tar.gz,一般解压到其他目录下,这里举个栗子,比如最经典的_user_local下。把解压后的文件夹重命名为mysql。然后执行下面几步;
shell> cd mysql
shell> mkdir mysql-files
shell> chmod 750 mysql-files
- 如果不使用额外的mysql用户而是使用当前登录的用户来启动MySQL,那么就不需要执行下面两步;
shell> chown -R mysql .
shell> chgrp -R mysql .
- 接下来就是初始化mysql的目录。这里坑了我一点时间。需要注意的有两点:
- 如果要改变mysql的目录的话,指定—datadir和—basedir。注意这里似乎不能使用cnf配置文件,用—defaults-file指定配置文件无法生效;
- —user参数为初始化的用户,必须指定为mysql目录的owner用户,否则会没有权限。这里的用户也不是登录mysql的初始用户,登录的账户是root
初始化有两种:一种是–initialize,初始化成功后会给个root账户的临时密码;一种是–initialize-insecure,初始化后root没有密码。
bin/mysqld --datadir=/path/to/data --basedir=/path/to/base --initialize --user=mysql
- 初始化完成后,就可以用mysqlsafe来启动MySQL。在这里就可以用—defaults-file来指定自定义的配置文件了。如果在前面mysqld初始化时加了—user参数,这里就可以省略了。
bin/mysqld_safe --defaults-file=/path/to/config/xx.cnf --user=mysql &
- 最后就可以用root账户登录了。
- Tips:最后还出现了一个小问题,就是root的临时密码过期了无法登录,解决方法就是使用mysqladmin来修改密码。
[root@localhost bin]# ./mysqladmin -uroot -p password
Enter password: //这里输入原过期的密码
New password: //重新输入新密码
Confirm new password: //重新输入新密码