Linux (CentOS 7) 系统安装 MySQL8 | MySQL 安装教程
CentOS 7 版本将 MySQL 数据库软件从默认的程序列表中移除,用 MariaDB 代替了。MariaDB 数据库管理系统是 MySQL 的一个分支,主要由开源社区在维护,采用 GPL 授权许可。
本章 Linux 系统下的 MySQL 安装教程所有安装操作均在 CentOS 7 系统中进行。
查看系统版本
使用 cat /etc/redhat-release
命令查询系统版本,如下所示
[root@LiaNg ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
清理 CentOS 7 中 mariadb 数据库
执行如下命令清理 CentOS 7 中自带的 mariadb 数据库:
rpm -qa |grep mariadb |xargs yum remove -y
无论选择何种安装方式,为防止出现冲突,都建议在安装 MySQL 前手动清理 mariadb**_
下载 MySQL 相关安装包
点击 下载MySQL 进入 MySQL 下载页面,根据系统版本进行下载。
- Windows:
CentOS 7 系统版本可直接点击下载 mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
下载完成上传至服务器 - Linux:
使用 wget 命令下载,下载地址:
https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
安装 MySQL
- 进入 mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar 文件存放目录
- 执行命令:
tar -xvf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar -C /opt/software/mysql
(将压缩包解压到 /opt/software/mysql 目录下) - 进入解压目录:
cd /opt/software/mysql
- 包含 8 个 rpm 包,如下所示:
mysql-community-client-8.0.18-1.el7.x86_64.rpm
mysql-community-common-8.0.18-1.el7.x86_64.rpm
mysql-community-devel-8.0.18-1.el7.x86_64.rpm
mysql-community-embedded-compat-8.0.18-1.el7.x86_64.rpm
mysql-community-libs-8.0.18-1.el7.x86_64.rpm
mysql-community-libs-compat-8.0.18-1.el7.x86_64.rpm
mysql-community-server-8.0.18-1.el7.x86_64.rpm
mysql-community-test-8.0.18-1.el7.x86_64.rpm - 分别对每个包进行安装(请按顺序安装 common,libs,libs-compat 包)
rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-devel-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-embedded-compat-8.0.18-1.el7.x86_64.rpm
rpm -ivh mysql-community-test-8.0.18-1.el7.x86_64.rpm
- 初始化 MySQL:
mysqld --initialize
- 调整数据目录归属:
chown mysql:mysql /var/lib/mysql -R
默认数据目录:/var/lib/mysql,可在 /etc/my.conf 中更改 datadir 参数
- 启动 MySQL:
systemctl start mysqld.service
- 查看 MySQL:
systemctl status mysqld.service
[root@LiaNg mysql]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2019-10-24 18:39:12 CST; 8s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 30356 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 30388 (mysqld)
Status: "Server is operational"
CGroup: /system.slice/mysqld.service
└─30388 /usr/sbin/mysqld
查询初始密码
此时 MySQL 已经开始正常运行,不过要想进入 MySQL 还得先找出此时 root 用户的密码,通过如下命令可以在日志文件中找出密码:
- MySQL 安装完成后,初始密码保存在
/var/log/mysqld.log
文件中 - 执行命令:
grep password /var/log/mysqld.log
[root@v2svnw mysql]# grep password /var/log/mysqld.log
2019-10-24T10:38:25.465382Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: *7C,#tQ6dc1f
- 如上所示:
*7C,#tQ6dc1f
即 MySQL 初始密码
登录 MySQL 验证是否成功
[root@v2svnw ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 27
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>
至此,MySQL 8 已经安装成功。
Linux 启动 MySQL 服务
systemctl start mysqld.service # 启动 mysqld
systemctl stop mysqld.service # 停止 mysqld
systemctl restart mysqld.service # 重启 mysqld
systemctl enable mysqld.service # 设置开机启动
systemctl status mysqld.service # 查看状态
Failed dependencies 解决办法
- error: Failed dependencies: libnuma.so.1()(64bit) is needed by ……
yum install numactl -y
- error: Failed dependencies: pkgconfig(openssl) is needed by ……
yum install openssl-devel -y
- error: Failed dependencies: perl(Data::Dumper) is needed by ……
yum install autoconf -y
- error: Failed dependencies: perl(JSON) is needed by ……
yum install perl-JSON -y