1. 安装前的准备
1.1 安装环境
1.1.1 操作系统内核版本
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
1.1.2 操作系统发行版本
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
1.2 安装文件
1.2.1 安装文件下载
MySQL下载地址:https://dev.mysql.com/downloads/mysql/
历史版本下载地址:https://downloads.mysql.com/archives/community/
- 版本选择:
2. 安装依赖
#安装【mysql-community-server】时会提示如下错误
[root@codezc ~]# rpm -ivh mysql-community-server-5.7.32-1.el7.x86_64.rpm
警告:mysql-community-server-5.7.32-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY
错误:依赖检测失败:
/usr/bin/perl 被 mysql-community-server-5.7.32-1.el7.x86_64 需要
net-tools 被 mysql-community-server-5.7.32-1.el7.x86_64 需要
perl(Getopt::Long) 被 mysql-community-server-5.7.32-1.el7.x86_64 需要
perl(strict) 被 mysql-community-server-5.7.32-1.el7.x86_64 需要
#根据以上内容显示:perl、net-tools 被需要!
[root@codezc ~]# yum -y install perl.x86_64
[root@codezc ~]# yum -y install net-tools.x86_64
2.2 卸载MariaDB
由于安装CentOS自定义配置的时候顺带安装了MariaDB,所以要安装MySQL5.7.32的话首先需要卸载掉已安装的MariaDB。
#检查mariadb是否已安装
[root@codezc ~]# yum list installed | grep mariadb
mariadb-libs.x86_64 1:5.5.68-1.el7 @anaconda
#全部卸载
[root@codezc ~]# yum -y remove mariadb*
#删掉含有mysql目录
[root@codezc ~]# whereis mysql
mysql: /usr/lib64/mysql
[root@codezc ~]# rm -rf /usr/lib64/mysql
- 解压并复制到相关目录
[root@codezc ~]# tar -xf mysql-5.7.32-1.el7.x86_64.rpm-bundle.tar
# 解压后的所需要的rpm包就都有了,如下所示
mysql-community-client-5.7.32-1.el7.x86_64.rpm
mysql-community-common-5.7.32-1.el7.x86_64.rpm
mysql-community-devel-5.7.32-1.el7.x86_64.rpm
mysql-community-embedded-5.7.32-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.32-1.el7.x86_64.rpm
mysql-community-embedded-devel-5.7.32-1.el7.x86_64.rpm
mysql-community-libs-5.7.32-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.32-1.el7.x86_64.rpm
mysql-community-server-5.7.32-1.el7.x86_64.rpm
mysql-community-test-5.7.32-1.el7.x86_64.rpm
- 安装rpm包
安装顺序为common,libs,devel,libs-compat,client,server
[root@codezc ~]# rpm -ivh mysql-community-common-5.7.32-1.el7.x86_64.rpm
[root@codezc ~]# rpm -ivh mysql-community-libs-5.7.32-1.el7.x86_64.rpm
[root@codezc ~]# rpm -ivh mysql-community-client-5.7.32-1.el7.x86_64.rpm
[root@codezc ~]# rpm -ivh mysql-community-server-5.7.32-1.el7.x86_64.rpm
3. 登录并创建MySql密码
3.1 启动MySql
安装完后,使用命令 service mysqld start 或 systemctl start mysqld.service 启动MySQL服务。(如果mysql服务无法启动,就重启一下系统)
#启动mysql
systemctl start mysqld.service
#查看mysql状态
systemctl status mysqld.service
#关闭mysql
systemctl stop mysqld.service
#服务自启动
systemctl enable mysqld.service
#服务关闭自动启动
systemctl disable mysqld.service
#显示所有已启动的服务
systemctl list-units --type=service
#查看mysql进程
ps -ef|grep mysql
#查看3306端口
netstat -anop|grep 3306
3.2 登陆mysql修改root密码
由于MySQL5.7.4之前的版本中默认是没有密码的,登录后直接回车就可以进入数据库,进而进行设置密码等操作。其后版本对密码等安全相关操作进行了一些改变,在安装过程中,会在安装日志中生成一个临时密码。
怎么找到这个临时密码呢?
使用:
grep 'temporary password' /var/log/mysqld.log
即可查询到类似于如下的一条日志记录:
# 在/var/log/mysqld.log文件中搜索字段‘temporary password’
[root@codezc ~]# grep 'temporary password' /var/log/mysqld.log
2022-04-22T02:42:48.988287Z 1 [Note] A temporary password is generated for root@localhost: shF.M&DHB3Nw
shF.M&DHB3Nw即为登录密码。使用这个随机密码登录进去,然后修改密码,使用命令:
mysql -uroot -p
[root@codezc ~]# mysql -uroot -p
Enter password: # 在这里输入密码
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.32
Copyright (c) 2000, 2020, 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> quit # 输入quit 或 exit 都能退出mysql
Bye
#更改策略,设置 validate_password_policy=0;(降低密码复杂度,根据需求视情况而定)
mysql> set global validate_password_length=1;
Query OK, 0 rows affected (0.00 sec)
#设置密码(尽量复杂一点)
mysql> set password for root@localhost=password('Xld@123456');
Query OK, 0 rows affected, 1 warning (0.00 sec)
#授予root用户远程访问权限
mysql> grant all privileges on *.* to root@'%' identified by 'Xld@123456';
Query OK, 0 rows affected, 1 warning (0.05 sec)
#刷新权限,使设置生效, OK。
mysql> flush privileges;
Query OK, 0 rows affected (0.36 sec)
#mysql中可以给一个用户授予如select,insert,update,delete等其中的一个或者多个权限,主要使用grant命令,用法格式为:
grant 权限 on 数据库对象 to 用户
一、grant 普通数据用户,查询、插入、更新、删除 数据库中所有表数据的权利。
grant select on testdb.* to common_user@'%'
grant insert on testdb.* to common_user@'%'
grant update on testdb.* to common_user@'%'
grant delete on testdb.* to common_user@'%'
或者,用一条 MySQL 命令来替代:
grant select, insert, update, delete on testdb.* to common_user@'%'
3.3 不区分大小写
vi /etc/my.cnf
修改MySQL的配置文件my.cnf或my.ini,添加如下配置:
[mysqld]
lower_case_table_names=1