MySQL 8.0 是最新版本的 MySQL 数据库管理系统,是一种关系型数据库管理系统,由 Oracle 公司开发和维护。MySQL 8.0 带来了一系列新特性,包括多个性能提升,更好的安全性和扩展性,以及新的管理功能。
更好的性能:MySQL 8.0 提供了对于大型查询和事务处理的更好的性能支持。它引入了新的索引类型,如哈希索引,以提供更快的查询操作。
更好的安全性:MySQL 8.0 引入了更好的密码验证规则,以保证用户账户的安全性。它还支持更强的加密,如 TLS 和 SSL。此外,它还提供了更好的访问控制机制,如基于角色的访问控制。
更好的扩展性:MySQL 8.0 引入了新的数据字典架构,它使用了更高效的内存表来缓存表元数据信息,以提高性能。
新的管理功能:MySQL 8.0 引入了新的管理功能,如 InnoDB 集成的全文搜索、更好的在线DDL 和 JSON 支持。
本次实践环境为个人测试环境,使用操作系统为centos7.6。
hostname | IP地址 | 系统版本 | 内核版本 | mysql版本 |
---|---|---|---|---|
jeven | 192.168.3.166 | centos7.6 | 3.10.0-957.el7.x86_64 | mysql8.0.34 |
1.在centos7.6系统下安装MySQL8.0版本。
2.可以远程登录mysql数据库。
如果系统上已安装有maraidb数据库,需要卸载mariadb
yum remove mariadb* -y
rm -rf /etc/my.cnf
rm -rf /var/lib/mysql/
如果系统已安装有其他版本的mysql,需提前卸载清空环境。
rpm -e mysql // 普通删除模式
rpm -e --nodeps mysql // 强力删除模式,
rm -rf /etc/my.cnf
rm -rf /var/lib/mysql/
下载mysql80-community-release-el7-7.noarch.rpm
wget https://repo.mysql.com//mysql80-community-release-el7-7.noarch.rpm
配置mysql的yum仓库
sudo rpm -Uvh mysql80-community-release-el7-7.noarch.rpm
检查yum仓库状态
[root@jeven ~]# yum repolist all |grep enable
base/7/x86_64 CentOS-7 - Base - m enabled: 10,072
extras/7/x86_64 CentOS-7 - Extras - enabled: 518
mysql-connectors-community/x86_64 MySQL Connectors Co enabled: 227
mysql-tools-community/x86_64 MySQL Tools Communi enabled: 100
mysql80-community/x86_64 MySQL 8.0 Community enabled: 424
updates/7/x86_64 CentOS-7 - Updates enabled: 5,061
检查mysql默认安装版本
[root@jeven ~]# yum repolist enabled | grep mysql
mysql-connectors-community/x86_64 MySQL Connectors Community 227
mysql-tools-community/x86_64 MySQL Tools Community 100
mysql80-community/x86_64 MySQL 8.0 Community Server 424
使用yum直接安装mysql
yum install mysql-community-server -y
启动mysql服务,并设置开机自启。
systemctl enable --now mysqld
检查mysql服务状态
[root@jeven ~]# systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Sun 2023-07-23 19:37:31 CST; 35s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 117898 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 117971 (mysqld)
Status: "Server is operational"
Tasks: 38
Memory: 472.2M
CGroup: /system.slice/mysqld.service
└─117971 /usr/sbin/mysqld
Jul 23 19:37:21 jeven systemd[1]: Starting MySQL Server...
Jul 23 19:37:31 jeven systemd[1]: Started MySQL Server.
获取随机生成的登录密码
[root@jeven ~]# grep 'temporary password' /var/log/mysqld.log
2023-07-23T11:37:25.670116Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Sw#rsuaMh4(I
本地使用生成的随机密码,登录mysql。
mysql -uroot -p
修改本地用户’root’@‘localhost’ 的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Root.36#336';
set global validate_password.policy=LOW;
set global validate_password.length=4;
SHOW VARIABLES LIKE 'validate_password%';
create user 'admin'@'%' identified WITH mysql_native_password BY 'admin';
grant all on *.* to 'admin'@'%' with GRANT OPTION;
flush privileges;
在其他mysql客户端远程登录mysql
[root@server ~]# mysql -h 192.168.3.166 -uadmin -padmin
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 16
Server version: 8.0.34 MySQL Community Server - GPL
Copyright (c) 2000, 2018, 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>