埋头工作
专职养娃

Centos7安装Mysql8新手教程

Mysql自从被Oracle收购之后,逐步有了收费的迹象,现在Mysql的版本也多了起来,主要有下面四种

  • Oracle Mysql云服务:基于MySQL企业版,由Oracle云提供支持——商业,收费
  • MySQL企业版:包含了最全面的MySQL高级功能和管理工具——商业,收费
  • MySQL Cluster CGE:是一个实时开源事务数据库,专为在高吞吐量条件下快速,永久地访问数据而设计——商业,收费
  • MySQL社区版——目前开源,免费,因此这也是现在大家安装的首选。
    • MySQL Community Server GPL版本
    • MySQL Cluster GPL版本
    • MySQL Router GPL版本
    • *** GPL版本

一、安装环境

操作系统:Centos7.6.1810 x86_64位

[root@madecentos ~]# ll /etc/*centos*
-rw-r–r–. 1 root root 38 Nov 23 2018 /etc/centos-release
-rw-r–r–. 1 root root 51 Nov 23 2018 /etc/centos-release-upstream
[root@madecentos ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
[root@madecentos ~]# cat /etc/centos-release-upstream
Derived from Red Hat Enterprise Linux 7.6 (Source)
[root@madecentos ~]# uname -a
Linux madecentos.novalocal 3.10.0-957.12.2.el7.x86_64 #1 SMP Tue May 14 21:24:32 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
[root@madecentos ~]#

数据库:Mysql8.0.16(最新版20190702)

可以从Mysql官网进行RPM包下载,然后源码安装。

https://dev.mysql.com/downloads/mysql/

二、开工安装

1、删除mariadb:由于Centos系统自带了Mariadb数据库,这属于mysql的一个分支,但是版本太低,无法兼容MySQL8的安装,所以需要先进行卸载,不信邪的你也可以先不卸载,直接安装,后面会报错。

rpm -qa |grep mariadb

如果有输出mariadb的包,那么执行下面的删除,注意加上–nodeps参数,否则会报错,提示这个数据库被其他包依赖使用

rpm -e mariadb-libs-5.5.56-2.el7.x86_64 –nodeps

2、上传提前下载的Mysql RPM包

  • 如果你能联网,可以直接wget下载(连接就是上图中的“Download获取的包”)
  • 如果不能,就像我一样,提前下载好,通过WinSCP软件上传都centos中。
  • 创建文件夹,并将文件放到文件夹内
  • [root@madecentos ~]# mkdir -p /usr/local/mysql
    [root@madecentos ~]# cp /home/centos/mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar /usr/local/mysql/
    [root@madecentos ~]# cd /usr/local/mysql/
    [root@madecentos mysql]# ls
    mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar

3、解压安装包

[root@madecentos mysql]# tar -xvf mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
mysql-community-libs-8.0.16-2.el7.x86_64.rpm
mysql-community-embedded-compat-8.0.16-2.el7.x86_64.rpm
mysql-community-devel-8.0.16-2.el7.x86_64.rpm
mysql-community-server-8.0.16-2.el7.x86_64.rpm
mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm
mysql-community-client-8.0.16-2.el7.x86_64.rpm
mysql-community-common-8.0.16-2.el7.x86_64.rpm
mysql-community-test-8.0.16-2.el7.x86_64.rpm
[root@madecentos mysql]# ll
total 1185680
-rw-r–r–. 1 root root 607068160 Jul 1 08:24 mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
-rw-r–r–. 1 7155 31415 33432660 May 3 04:38 mysql-community-client-8.0.16-2.el7.x86_64.rpm
-rw-r–r–. 1 7155 31415 588520 May 3 04:38 mysql-community-common-8.0.16-2.el7.x86_64.rpm
-rw-r–r–. 1 7155 31415 5712552 May 3 04:38 mysql-community-devel-8.0.16-2.el7.x86_64.rpm
-rw-r–r–. 1 7155 31415 24493344 May 3 04:38 mysql-community-embedded-compat-8.0.16-2.el7.x86_64.rpm
-rw-r–r–. 1 7155 31415 3127296 May 3 04:38 mysql-community-libs-8.0.16-2.el7.x86_64.rpm
-rw-r–r–. 1 7155 31415 2177156 May 3 04:38 mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm
-rw-r–r–. 1 7155 31415 422672748 May 3 04:39 mysql-community-server-8.0.16-2.el7.x86_64.rpm
-rw-r–r–. 1 7155 31415 114848996 May 3 04:40 mysql-community-test-8.0.16-2.el7.x86_64.rpm

4、开始逐个安装解压之后的rpm包

注意这里面的rpm包之间是有依赖关系的,我是一个一个试着安装,而且中间会报缺少其他依赖包,然后找出的顺序,比如下面的这个。。。。

[root@work.xinyigirl.com mysql]# rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm
warning: mysql-community-server-8.0.16-2.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
libaio.so.1()(64bit) is needed by mysql-community-server-8.0.16-2.el7.x86_64
libaio.so.1(LIBAIO_0.1)(64bit) is needed by mysql-community-server-8.0.16-2.el7.x86_64
libaio.so.1(LIBAIO_0.4)(64bit) is needed by mysql-community-server-8.0.16-2.el7.x86_64
mysql-community-client(x86-64) >= 8.0.11 is needed by mysql-community-server-8.0.16-2.el7.x86_64
mysql-community-common(x86-64) = 8.0.16-2.el7 is needed by mysql-community-server-8.0.16-2.el7.x86_64
[root@xiaobingzhanggamadecentos mysql]# yum install -y libaio
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ap.stykers.moe
* extras: centos.ustc.edu.cn
* updates: ap.stykers.moe
Resolving Dependencies
–> Running transaction check
—> Package libaio.x86_64 0:0.3.109-13.el7 will be installed
–> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================================================
Package Arch Version Repository Size
====================================================================================================================================
Installing:
libaio x86_64 0.3.109-13.el7 base 24 k

Transaction Summary
====================================================================================================================================
Install 1 Package

Total size: 24 k
Installed size: 38 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.
** Found 2 pre-existing rpmdb problem(s), ‘yum check’ output follows:
2:postfix-2.10.1-7.el7.x86_64 has missing requires of libmysqlclient.so.18()(64bit)
2:postfix-2.10.1-7.el7.x86_64 has missing requires of libmysqlclient.so.18(libmysqlclient_18)(64bit)
Installing : libaio-0.3.109-13.el7.x86_64 1/1
Verifying : libaio-0.3.109-13.el7.x86_64 1/1

Installed:
libaio.x86_64 0:0.3.109-13.el7

Complete!

整理之后的顺序如下,请参考

必须安装,而且必须是这个顺序安装!

rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64.rpm

可选,建议安装,顺序无所谓

rpm -ivh mysql-community-libs-compat-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.16-2.el7.x86_64.rpm
rpm -ivh mysql-community-test-8.0.16-2.el7.x86_64.rpm

5、安装过程中可能碰到的错误如下,可以对照着进行解决

错误信息A:

[root@work.xinyigirl.com mysql]# rpm -ivh mysql-community-server-8.0.16-2.el7.x86_64

error:Failed dependencies:
libnuma.so.1()(64bit) is needed by mysql-community-server-8.0.16-2.el7.x86_64……

解决办法:安装numactl

yum install numactl

 

错误信息B:

[root@work.xinyigirl.com mysql]# rpm -ivh mysql-community-devel-8.0.16-2.el7.x86_64

error:Failed dependencies:
pkgconfig(openssl) is needed by mysql-community-devel-8.0.16-2.el7.x86_64
解决办法:安装openssl-devel
yum install openssl-devel.x86_64 openssl.x86_64 -y

错误信息C:

[root@work.xinyigirl.com mysql]# rpm -ivh mysql-community-test-8.0.16-2.el7.x86_64.rpm

warning: mysql-community-test-8.0.16-2.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
perl(JSON) is needed by mysql-community-test-8.0.16-2.el7.x86_64

解决办法:安装perl相关依赖,一共三个

yum install perl.x86_64 perl-devel.x86_64 -y
yum install perl-JSON.noarch -y

三、数据库初始化工作

1、初始化

mysqld –initialize –console

正常没有任何输出

2、目录授权,避免启动失败

chown -R mysql:mysql /var/lib/mysql/

3、启动数据库服务——启动数据库之后mysql会在首次初始化的时候创建一个随机密码

启动服务:systemctl start mysqld

查看状态:service mysqld status

[root@work.xinyigirl.com mysql]# systemctl start mysqld
[root@work.xinyigirl.com mysql]# service mysqld status
Redirecting to /bin/systemctl status mysqld.service
● mysqld.service – MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2019-07-01 08:50:03 UTC; 5s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 4292 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 4319 (mysqld)
Status: “SERVER_OPERATING”
Tasks: 38
Memory: 373.8M
CGroup: /system.slice/mysqld.service
└─4319 /usr/sbin/mysqld

Jul 01 08:50:00 madecentos.novalocal systemd[1]: Starting MySQL Server…
Jul 01 08:50:03 madecentos.novalocal systemd[1]: Started MySQL Server.

4、查看初始密码

初始密码放在/var/log/mysqld.log文件中,找到红色行,冒号后面的就是初始密码,注意不含冒号。

[root@work.xinyigirl.com mysql]# cat /var/log/mysqld.log
2019-07-01T08:48:59.966835Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.16) initializing of server in progress as process 4239
2019-07-01T08:49:10.009291Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 8_UakedX4eof
2019-07-01T08:49:14.048223Z 0 [System] [MY-013170] [Server] /usr/sbin/mysqld (mysqld 8.0.16) initializing of server has completed
2019-07-01T08:50:02.112246Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.16) starting as process 4319
2019-07-01T08:50:03.319215Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2019-07-01T08:50:03.371928Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: ‘8.0.16’ socket: ‘/var/lib/mysql/mysql.sock’ port: 3306 MySQL Community Server – GPL.
2019-07-01T08:50:03.505602Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: ‘/var/run/mysqld/mysqlx.sock’ bind-address: ‘::’ port: 33060

5、登录并更改密码

登录:mysql -u root -p

更改密码(XXXXX改成你的密码): alter USER ‘root’@’localhost’ IDENTIFIED BY ‘XXXXXXXXXX‘;

[root@work.xinyigirl.com mysql]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.16

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 ‘XXXXXXXXXX‘;
Query OK, 0 rows affected (0.06 sec)

至此大功告成,开始使用吧。

赞(1) 打赏
本人经小丙张嘎纯手工打字生成,未经许可不得转载知识点滴:小丙张嘎blog » Centos7安装Mysql8新手教程
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏