相比源码包,二进制包属于预编译过的,少了手工编译过程,可以自定义安装目录如果没有特殊需求的话正常用这个安装就可以了,最简单的肯定还是RPM包安装,但是全默认连指定安装目录都做不到,用RPM包装好像也不能装多实例了(不确定,没用RPM包装过)
依旧是使用清华大学镜像站的源,二进制的包足有600多M,去官网下那个速度。。
下载、创建mysql用户、解压并创建软链接
# wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
# groupadd mysql
# useradd -r -g mysql -s /bin/false mysql
# cd /usr/local
# tar zxvf /root/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
# ln -s mysql-5.7.27-linux-glibc2.12-x86_64/ mysql
mysql 初始化,没有编译安装的过程
# cd mysql && mkdir mysql-files
# chmod 750 mysql-files
# chown -R mysql .
# chgrp -R mysql .
# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
做完这步能得到初始密码
# bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
# chown -R root .
# chown -R mysql data mysql-files
配置my.cnf,根据自身需求加其它配置吧,我这里只写了基本项
# vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
socket=/tmp/mysql.sock
character-set-server=utf8
log-error=/var/log/mysqld.log
pid-file=/tmp/mysqld.pid
因为要在tmp下创建sock和pid文件,所以这里给tmp改成777权限,如果是别的路径也建议改一下
chmod 777 /tmp
装过好几次mysql,在这里是最容易报错的,记几个常见错误:
启动报错:
这里可能是tmp目录没有权限,写别的路径也可能是这个问题
如果给了权限还是不行,可以考虑在该路径下创建一个对应的pid目录,如上图的/usr/local/mysql/localhost.localdomain.pid
但是这样以后停止mysql会报错,因为每次关闭mysql会删掉该文件,启动时重新生成,这是个启动时不生成该文件的野路子方法。
登录报错:
注意末尾括号里的111,通常报这个错都有mysql.sock文件,就在/etc/my.cnf指定的路径下,但是它没有读这个配置文件,如果出这个错,建议按报错提示把sock文件mv到该目录也就是tmp下,记得tmp目录给777权限,通常可以解决问题。
以上这个错,如果用find找的sock文件,那么处理同上一个,如果找不到,并且重启mysql也不自动生成,配置文件确定没错,我装了几次也遇到过一回这个问题,那只能把先前装的全部删掉重来了,我再重装就解决问题了。
生成启动脚本
# cp support-files/mysql.server /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld
# vim /etc/init.d/mysqld
basedir=/usr/local/mysql //在第46~47行
datadir=/usr/local/mysql/data
启动mysql
# chkconfig --add mysqld
# chkconfig mysqld on //开启自启
# service mysqld start
环境变量
# echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
# source /etc/profile
# mysql -uroot -p
输入初始密码登录后,修改密码即可
mysql> set password=password('123');