CentOS7安装MySQL8

本文将介绍怎样在CentOS7中安装MySQL8数据库

在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。

下载并安装 MySQL 官方的 Yum Repository

先使用 wget 去下载 Yum Repository。如下:

[root@S5 ~]# wget -i https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm

或者自己下载 rpm 文件后,通过FTP上传到Linux服务器,下载的rpm文件大概在25KB的样子。下载后的文件如下:

[root@S5 ~]# ll
总用量 32
-rw-------. 1 root root  1421 12月 12 2017 anaconda-ks.cfg
-rw-r--r--. 1 root root 25820 11月 24 14:08 mysql80-community-release-el7-1.noarch.rpm
[root@S5 ~]#

现在我们就可以直接使用 yum 命令安装了。如下:

[root@S5 ~]# yum -y install mysql80-community-release-el7-1.noarch.rpm
已加载插件:fastestmirror
正在检查 mysql80-community-release-el7-1.noarch.rpm: mysql80-community-release-el7-1.noarch
mysql80-community-release-el7-1.noarch.rpm 将被安装
正在解决依赖关系
--> 正在检查事务
---> 软件包 mysql80-community-release.noarch.0.el7-1 将被 安装
--> 解决依赖关系完成

依赖关系解决

===================================================================================================================================
 Package                              架构              版本              源                                                  大小
===================================================================================================================================
正在安装:
 mysql80-community-release            noarch            el7-1             /mysql80-community-release-el7-1.noarch             31 k

事务概要
===================================================================================================================================
安装  1 软件包

总计:31 k
安装大小:31 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : mysql80-community-release-el7-1.noarch                                                                         1/1
  验证中      : mysql80-community-release-el7-1.noarch                                                                         1/1

已安装:
  mysql80-community-release.noarch 0:el7-1

完毕!
[root@S5 ~]#

自此,就可以使用“yum -y install”开始安装MySQL服务器。如下:

[root@S5 ~]# yum -y install mysql-community-server
已加载插件:fastestmirror
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                                        | 3.6 kB  00:00:00
docker-ce-stable                                                                                            | 3.5 kB  00:00:00
extras                                                                                                      | 2.9 kB  00:00:00
jenkins                                                                                                     | 2.9 kB  00:00:00
...

依赖关系解决

===================================================================================================================================
 Package                                   架构                 版本                         源                               大小
===================================================================================================================================
正在安装:
...

事务概要
===================================================================================================================================
安装  3 软件包 (+2 依赖软件包)

总下载量:473 M
Downloading packages:
警告:/var/cache/yum/x86_64/7/mysql80-community/packages/mysql-community-common-8.0.18-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
mysql-community-common-8.0.18-1.el7.x86_64.rpm 的公钥尚未安装
(1/5): mysql-community-common-8.0.18-1.el7.x86_64.rpm                                                       | 597 kB  00:00:02
(2/5): mysql-community-libs-8.0.18-1.el7.x86_64.rpm                                                         | 3.7 MB  00:00:01
(3/5): mysql-community-libs-compat-8.0.18-1.el7.x86_64.rpm                                                  | 1.3 MB  00:00:00
(4/5): mysql-community-client-8.0.18-1.el7.x86_64.rpm                                                       |  38 MB  00:00:16
(5/5): mysql-community-server-8.0.18-1.el7.x86_64.rpm                                                       | 429 MB  00:19:15
-----------------------------------------------------------------------------------------------------------------------------------
...
已安装:
  mysql-community-libs.x86_64 0:8.0.18-1.el7                    mysql-community-libs-compat.x86_64 0:8.0.18-1.el7
  mysql-community-server.x86_64 0:8.0.18-1.el7

作为依赖被安装:
  mysql-community-client.x86_64 0:8.0.18-1.el7                     mysql-community-common.x86_64 0:8.0.18-1.el7

替代:
  mariadb-libs.x86_64 1:5.5.60-1.el7_5

完毕!
[root@S5 ~]#

这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。至此MySQL就安装完成了,然后是对MySQL的一些设置。

MySQL数据库设置

首先启动MySQL,如下:

[root@S5 ~]# systemctl start  mysqld.service

查看MySQL运行状态,运行状态如图:

[root@S5 ~]# systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since 日 2019-11-24 16:52:20 CST; 27s ago
     Docs: man:mysqld(8)
           https://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 10867 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 10947 (mysqld)
   Status: "Server is operational"
    Tasks: 39
   Memory: 383.5M
   CGroup: /system.slice/mysqld.service
           └─10947 /usr/sbin/mysqld

11月 24 16:52:06 S5 systemd[1]: Starting MySQL Server...
11月 24 16:52:20 S5 systemd[1]: Started MySQL Server.
[root@S5 ~]#

此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

[root@S5 ~]# grep "password" /var/log/mysqld.log
2019-11-24T08:52:14.462166Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: LPzNyx3vI2,!
[root@S5 ~]#

如下命令进入数据库:

[root@S5 ~]# mysql -u root -p

输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:

[root@S5 ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.18

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> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

上面设置 mysql 的密码为 123456,但是出错了。这是因为新密码设置的过于简单。错误信息如下:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

抛出错误的原因是因为 MySQL 有密码设置的规范,具体是与 validate_password_policy 的值有关:

CentOS7安装MySQL8

我们把密码设置更复杂,如下:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'qazPL<123';
Query OK, 0 rows affected (0.03 sec)

将数据库密码设置为:qazPL<123

MySQL完整的初始密码规则可以通过如下命令查看:

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name                        | Value  |
+--------------------------------------+--------+
| validate_password.check_user_name    | ON     |
| validate_password.dictionary_file    |        |
| validate_password.length             | 8      |
| validate_password.mixed_case_count   | 1      |
| validate_password.number_count       | 1      |
| validate_password.policy             | MEDIUM |
| validate_password.special_char_count | 1      |
+--------------------------------------+--------+
7 rows in set (0.03 sec)

密码的长度是由 validate_password.length 决定的,而 validate_password.length 的计算公式是:

validate_password.length = validate_password.number_count + validate_password.special_char_count + (2 * validate_password.mixed_case_count)

我的是已经修改过的,初始情况下第一个的值是ON,validate_password.length 是 8。可以通过如下命令修改:

mysql> set global validate_password.policy=0;
Query OK, 0 rows affected (0.00 sec)

mysql> set global validate_password.length=1;
Query OK, 0 rows affected (0.00 sec)

设置之后就是我上面查出来的那几个值了,此时密码就可以设置的很简单,例如aaaaaa之类的。到此数据库的密码设置就完成了。实例如下:

mysql> alter user 'root'@'localhost' identified by 'aaaaaa';
Query OK, 0 rows affected (0.01 sec)

但此时还有一个问题,就是因为安装了 Yum Repository,以后每次 yum 操作都会自动更新,需要把这个卸载掉:

[root@S5 ~]# yum -y remove mysql57-community-release-el7-10.noarch

此时才算真的完成了。

参考资料:

https://cloud.tencent.com/developer/article/1343118

学习本无底,前进莫徬徨。 —— 报摘
0 不喜欢
说说我的看法 -
全部评论(
没有评论
关于
本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,请来信告知:hxstrive@outlook.com
公众号