作者:北京运维
常见的 MySQL 安装方式有如下三种:
- RPM 包方式:这种方式安装适合对数据库要求不太高的场合,安装速度快;
- 通用二进制包方式:安装速度相较于源码方式快,可以自定义安装目录。
- 源码编译安装:安装过程比较慢,机器性能不好的情况下,大约需要30分钟左右,通常适用于mysql定制化的安装,比如需要加入一些第三方的插件及依赖库等
环境说明
OS 版本 | MySQL 版本 |
---|---|
CentOS 7.5.1804 | 5.7.25 |
一、RPM 包方式安装
1.1 获取 RPM 包
访问 MySQL 官网,下载最新版 mysql5.7 的 rpm 包。
- 点击 DOWNLOADS --> 点击 Community 社区版 --> 选择 MySQL Community Server
- 选择 MySQL Community Server 5.7 -> 而后选择对应的软件平台版本
- 选择下载 RPM Bundle 这里包含了所有 MySQL 的 RPM 包。
1.2 安装 MySQL
下载 Bundle 包解压以后,可以看到包含了所有 MySQL 相关的 RPM 包:
其中 client、common、libs、server 四个程序包是必须安装的:
mysql-community-client-5.7.25-1.el7.x86_64.rpm
mysql-community-common-5.7.25-1.el7.x86_64.rpm
mysql-community-libs-5.7.25-1.el7.x86_64.rpm
mysql-community-server-5.7.25-1.el7.x86_64.rpm
在执行安装之前,先检查是否已经安装过(CentOS7 以后默认安装的 mariadb)
$ rpm -qa|egrep "mariadb|mysql"
mariadb-libs-5.5.60-1.el7_5.x86_64
# 我这里存在 mariadb-libs 会造成冲突,所以卸载掉
rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
# 卸载之后就可以进行安装使用 yum 或者 rpm -ivh
$ yum -y install mysql-community-client-5.7.25-1.el7.x86_64.rpm mysql-community-common-5.7.25-1.el7.x86_64.rpm mysql-community-libs-5.7.25-1.el7.x86_64.rpm mysql-community-server-5.7.25-1.el7.x86_64.rpm
安装完成后 MySQL 的默认配置文件为 /etc/my.cnf
接下来我们就可以启动 MySQL 啦
$ systemctl start mysqld.service
$ systemctl enable mysqld.service
$ systemctl status mysqld.service
1.3 修改 MySQL 默认密码
MySQL 5.7 以后,不在允许使用空密码进行登录,默认会初始化一个密码到 MySQL Error 日志中,配置参数 log-error=
指定的文件。
$ cat /var/log/mysqld.log | grep password
2019-03-20T02:44:49.359004Z 1 [Note] A temporary password is generated for root@localhost: /qrsXHttL6Mr
连接实例并修改默认密码
$ mysql -uroot -p
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.25
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> set password for 'root'@'localhost'=password('MyNewPass4!');
Query OK, 0 rows affected, 1 warning (0.00 sec)
以后通过 update set 语句修改密码:
mysql> use mysql;
mysql> update user set authentication_string=PASSWORD('NewPass@2019') where user='root';
mysql> flush privileges;
注意:mysql 5.7 默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 错误。查看 MySQL 密码策略
二、通用二进制包方式安装
官方文档:https://dev.mysql.com/doc/refman/5.7/en/binary-installation.html
2.1 获取安装包
选择 Linux - generic 64 位安装包
2.2 安装 MySQL
MySQL 依赖于 libaio 库。 如果未在本地安装此库,则数据目录初始化和后续服务器启动步骤将失败。 如有必要,请使用适当的包管理器进行安装。 例如,在基于Yum 的系统上:
$ yum -y install libaio
创建 MySQL 用户和组
$ groupadd mysql
$ useradd -r -g mysql -s /bin/false mysql
解压到指定目录
$ tar xf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
$ cd /usr/local/
$ ln -sv mysql-5.7.25-linux-glibc2.12-x86_64/ mysql
修改解压目录下所有文件属主及属组
$ cd /usr/local/mysql
$ chown -R root.mysql ./*
创建数据目录,以 /data/mysql/data 为例
$ mkdir -pv /data/mysql/{data,log}
$ chown -R mysql.mysql /data/mysql
准备 MySQL 配置文件,我这里用的是在线工具生成的 my.cnf 文件,工具链接
$ cat /etc/my.cnf
[client]
port = 3306
socket = /data/mysql/mysql.soc