在运维的过程中,我们经常会使用到MySQL数据库,由于其安装体积小、速度快、开放源代码和社区活跃特性,一度成为众多企业和个人首要选择。
MySQL经过几十年的发展,现在已经更新到8.0的大版本,但对大多数用户而言,5.x的版本才是最稳定的,所以今天以MySQL 5.7版本来演示安装过程。
离线安装
准备离线包
上传MySQL离线软件包到服务器上, 这里以CentOS 7做演示。
# 查看已上传的软件包
[root@mx mysql]# ls
mysql-5.7.17.tar
[root@mx mysql]#
# 解压软件包
[root@mx mysql]# tar -xvf mysql-5.7.17.tar
./mysql-community-client-5.7.17-1.el7.x86_64.rpm
./mysql-community-common-5.7.17-1.el7.x86_64.rpm
./mysql-community-devel-5.7.17-1.el7.x86_64.rpm
./mysql-community-embedded-5.7.17-1.el7.x86_64.rpm
./mysql-community-embedded-compat-5.7.17-1.el7.x86_64.rpm
./mysql-community-embedded-devel-5.7.17-1.el7.x86_64.rpm
./mysql-community-libs-5.7.17-1.el7.x86_64.rpm
./mysql-community-libs-compat-5.7.17-1.el7.x86_64.rpm
./mysql-community-minimal-debuginfo-5.7.17-1.el7.x86_64.rpm
./mysql-community-server-5.7.17-1.el7.x86_64.rpm
./mysql-community-test-5.7.17-1.el7.x86_64.rpm
[root@mx mysql]#
# 安装, 如果有旧版本的mysql请先备份卸载
yum -y install mysql-community-*.rpm
安装完成后,设置开机启动和运行。
systemctl start mysqld
systemctl enable mysqld
#也可以使用下面的语句一次设置启动和开机启动
#systemctl enable --now mysqld
# 查看运行状态
systemctl status mysqld
如果 Active: active (running)显示为绿色的running,则正常启动。
获得软件的随机密码。MySQL不同于MariaDB的空密码,它是密码是初始化在日志文件里的一个随机密码,我们通过grep查找关键字来筛选出密码,默认只允许root登录。
grep 'password' /var/log/mysqld.log
在root@localhost:后面的为临时密码,复制到剪贴板中备用(注意:临时密码中可能包含有特殊字符,注意不要漏掉)
登录MySQL
使用mysql命令登录到root用户中。
mysql -uroot -p
# 这里我们使用刚刚复制的密码粘贴
出现MySQL数据库的版本信息时,登录成功。
修改root密码
此时我们使用的临时的密码来登录到系统中是限制了操作的,比如我查一下目前系统中的数据库,系统会提示"ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.",让我们在执行这条语句之前要先修改密码。
修改密码前,默认的密码策略是1,需要满足默认密码包含8位、数字、大小写与特殊字符。如果你的密码不需要设置这么复杂,使用下面的语句。
## 临时有效
# 修改策略为0
set global validate_password_policy=0;
# 修改密码长度
set global validate_password_length=6;
## 永久生效
vim /etc/my.cnf
[mysqld]
validate_password_policy=0
validate_password_length=6
使用临时策略执行一下,然后修改root密码。
# 修改密码
alter user root@"localhost" identified by "密码";
# 比如修改我的密码为admin123
alter user root@"localhost" identified by "admin123";
# 退出系统
exit
可以看到我在修改密码策略之前修改是失败了的,执行密码策略后再次执行成功。
使用新密码重新登录系统
mysql -uroot -p
#你的新密码
在线安装
在线安装我们通常使用的是官方提供的仓库文件,安装仓库文件后会更新yum源,通过设定的yum源就可以安装指定版本的mysql了。
安装yum仓库
由于目前官方已经把mysql更新到8.0了,在官网上难以找到5.7的仓库文件,这里我们使用连接下载。
# 安装必要依赖
yum -y install gcc wget vim expect
# 下载和安装仓库文件
wget -c -P /tmp http://qny.aoarasi.com/mysql57-community-release-el6-9.noarch.rpm
# 备用下载地址
# https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
# 安装
rpm -ivh /tmp/mysql57-community-release-el6-9.noarch.rpm
# 建立缓存
yum makecache
# 删除33行,修改为5.7,不然安装不成功
sed -i '33d' /etc/yum.repos.d/mysql-community.repo
# 添加33为新的地址
sed -i '33i baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/' /etc/yum.repos.d/mysql-community.repo
# 安装mysql
yum -y install mysql-community-server.x86_64
yum -y install mysql-devel
由于是在线安装,在网络不太好的情况下需要较长的时间。如必须要网络也可以把前者的离线文件做成网络yum仓库使用,或使用国内镜像站点加速。
安装完成后,后续步骤同前面离线安装相似,需要使用临时密码登录系统并更改密码,故不赘述。