本文是在centos7上安装mysql5.7或mysql8,单节点
步骤
一、添加 MySQL yum 源
本文使用root用户操作,在node1节点的虚拟机上安装
可以采用yum localinstall
命令来添加 MySQL 源。
在 https://dev.mysql.com/downloads/repo/yum/ 页面选择合适 rpm 包,这些 rpm 包的作用就是添加 MySQL yum 源的。centos7要下载el7
的(centos6下载el6,同理)。下载后,然后执行命令:
下载后上传到node1任何节点,执行如下
yum localinstall mysql80-community-release-el7-3.noarch.rpm
执行yum localinstall命令后,可以看到/etc/yum.repos.d目录多了两个文件:
- mysql-community.repo
- mysql-community-source.repo
注意,注意:虽然下载的名字叫mysql80-community-release-el7-3.noarch.rpm
,看起来像mysql7的rpm文件,但是其实它里面包括了5.7等等版本。
二、安装
2.1 选择版本
2.1.1 默认应该是mysql8的版本的,可以这么确认
yum repolist all | grep mysql
--可以看到 "启用" 的版本是 "!mysql80-community/x86_64",即mysql8
mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community 禁用
mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - So 禁用
mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community 禁用
mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - So 禁用
mysql-cluster-8.0-community/x86_64 MySQL Cluster 8.0 Community 禁用
mysql-cluster-8.0-community-source MySQL Cluster 8.0 Community - So 禁用
!mysql-connectors-community/x86_64 MySQL Connectors Community 启用: 141
mysql-connectors-community-source MySQL Connectors Community - Sou 禁用
!mysql-tools-community/x86_64 MySQL Tools Community 启用: 105
mysql-tools-community-source MySQL Tools Community - Source 禁用
mysql-tools-preview/x86_64 MySQL Tools Preview 禁用
mysql-tools-preview-source MySQL Tools Preview - Source 禁用
mysql55-community/x86_64 MySQL 5.5 Community Server 禁用
mysql55-community-source MySQL 5.5 Community Server - Sou 禁用
mysql56-community/x86_64 MySQL 5.6 Community Server 禁用
mysql56-community-source MySQL 5.6 Community Server - Sou 禁用
mysql57-community/x86_64 MySQL 5.7 Community Server 禁用
mysql57-community-source MySQL 5.7 Community Server - Sou 禁用
!mysql80-community/x86_64 MySQL 8.0 Community Server 启用: 161
mysql80-community-source MySQL 8.0 Community Server - Sou 禁用
2.1.2 修改repo文件
vim /etc/yum.repos.d/mysql-community.repo
可以看到 [mysql80-community]
下的 enabled=1
,改成0,另外将[mysql57-community]
下的 enabled=0
改成1。(按官网的说明,如果同时都是enabled的话,会自动选择最新的)
2.1.3 验证是不是修改成功了
可以再次执行 yum repolist all | grep mysql
再确定启用状态的版本是不是自己想要的。当然也可以执行yum repolist enabled | grep mysql
,这个命令直接输出enabled的,比较简洁。
2.2 安装mysql
添加好 yum 源后,就可以执行安装命令了。执行以下命令就会安装mysql8或者mysql5.7(取决于上一步):
yum install -y mysql-community-server
此过程会下载几百兆的的安装包并安装
三、设置时区、编码、改密
先修改下配置文件。因为默认的时区是CST,CST有歧义,可以表示中国时区或美国中部时区,java里CST的字串被表示为美国中部时区,所以这里一定要改成+08:00(明确指定!);字符编码支不指定都行,mysql8默认就是utf8mb4
vim /etc/my.cnf
增加如下内容(在`[mysqld]`下面增加,注意指定utf8mb4可以省略,因为mysql8默认就是这个字符编码)
default-time-zone=+08:00
# The default value for character-set-server is utf8mb4, so you don't have to set it.(by Stone)
#character-set-server=utf8mb4
安装后服务是没有启动的,可以用ps -ef|grep mysqld
检查。
- 我们需要手动启动
systemctl start mysqld.service
- 检查是否启动成功
ps -ef|grep mysqld
- 查看临时密码
MySQL 默认创建了 root 用户的密码,这个密码打印在 MySQL 的日志文件/var/log/mysqld.log
中,可以通过temporary password
关键字来找出这个临时的密码。
grep 'temporary password' /var/log/mysqld.log
- 改密码,
IDENTIFIED BY
语句后改成自己想要的密码
使用该密码连接 MySQL:
mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
四、开放其他地址连接
默认只能本机连接,我们希望任意IP的远程机器可以连接
- 查看建表语句
mysql> show create table mysql.user;
确定了Host和User两个字段是联合主键,这样通过Host和User当做where条件 “会不会误修改到别的记录” 的担忧放下了。
- 查看mysql.user表的结构
mysql> desc mysql.user;
有时候会忘记字段名(因为这个操作真的低频),用这个方法回忆起这张表的字段名,便于后续写sql
- 查看一下要改哪个用户
mysql> select host,user from mysql.user;
我们看到host值是’localhost’,user值是’root’的;我们改这个,目的就是把host字段值改成%
- 修改密码
通过host和user能唯一确定一行记录。
mysql> update mysql.user set host='%' where host='localhost' and user='root';
- 记得刷新,否则不生效
mysql>flush privileges;
- 检查是否可以远程连接:远程连一下看看