下载MySQL离线安装包

访问MySQL官网下载网站,下载对应版本的离线安装包。
image.png

删除mariadb服务

通过命令查看已经安装的mariadb的服务:

  1. rpm -qa|grep mariadb

CentOS8中无查询结果,CentOS7查询结果参考如下:
image.png
如果存在查询结果则需要删除服务:

  1. rpm -e --nodeps mariadb-libs

上传,解压,安装

命令参考如下:

  1. # 上传安装包
  2. rz mysql-8.0.21-1.el8.x86_64.rpm-bundle.tar
  3. # 进行解压缩
  4. tar -xvf mysql-8.0.21-1.el8.x86_64.rpm-bundle.tar

得到的文件目录如下:
image.png
安装必要的组件:

  1. # common
  2. rpm -ivh mysql-community-common-8.0.21-1.el8.x86_64.rpm
  3. # libs
  4. rpm -ivh mysql-community-libs-8.0.21-1.el8.x86_64.rpm
  5. # client
  6. rpm -ivh mysql-community-client-8.0.21-1.el8.x86_64.rpm
  7. # server
  8. rpm -ivh mysql-community-server-8.0.21-1.el8.x86_64.rpm

设置忽略表名大小写

首先打开MySQL的配置文件:

  1. vim /etc/my.cnf

增加相关配置信息:

  1. # 忽略表名大小写
  2. lower_case_table_names=1

配置完成后保存退出。

初始化并启动数据库

  1. # 初始化数据库
  2. mysqld --initialize --console
  3. # 启动数据库前查看数据库状态
  4. systemctl status mysqld
  5. # 进行必要授权,否则启动会失败
  6. chown -R mysql:mysql /var/lib/mysql/
  7. # 启动数据库
  8. systemctl start mysqld
  9. # 启动完成后查看数据库状态
  10. systemctl status mysqld

登录数据库并修改默认密码

查看MySQL安装完成后提供的临时密码:

  1. cat /var/log/mysqld.log | grep password

执行结果参考图:
image.png
通过临时密码登录数据库:

  1. mysql -u root -p

回车后输入密码即可登录:
image.png
登录成功后可以通过SQL语句修改密码:

  1. alter USER 'root'@'localhost' IDENTIFIED BY 'p@ssw0rd';

授权远程连接

  1. # 查询数据库列表
  2. show databases;
  3. # 切换当前数据库
  4. use mysql;
  5. # 查询当前所有授权信息
  6. select host, user, authentication_string, plugin from user;
  7. # 设置可以使用root用户访问数据库的地址
  8. update user set host = "%" where user='root';
  9. # 检查授权信息
  10. select host, user, authentication_string, plugin from user;
  11. # 使设置生效
  12. flush privileges;

执行过程参考:
image.png
image.png

相关命令

  1. # 授权命令:with gran option 表示该用户可给其它用户赋予权限,但不可能超过该用户已有的权限
  2. grant all privileges on [schema名].[表名] to '[用户名]'@'[连接地址]' with grant option;
  3. grant all privileges on *.* to 'my'@'%' with grant option;
  4. # 撤销授权
  5. revoke all privileges on *.* from 'my'@'%';

开放防火墙3306端口

  1. # 查看所有开放的端口列表
  2. firewall-cmd --zone=public --list-ports
  3. # 添加MySQL默认使用的3306端口
  4. firewall-cmd --zone=public --add-port=3306/tcp --permanent
  5. # 重启防火墙让配置生效
  6. firewall-cmd --reload
  7. # 检查开放的端口列表
  8. firewall-cmd --zone=public --list-ports

使用视图工具连接数据库时的问题

问题一:Authenticationplugin‘caching_sha2_password’cannot be loaded:XXXXX

问题原因:

MySQL8版本之前的加密规则是mysql_native_password,而MySQL8版本之后的加密的规则是caching_sha2_password

解决方案:

  1. 升级视图工具的驱动
  2. 将数据库加密规则还原成mysql_native_password
    1. alter USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'p@ssw0rd';

问题二:密码策略

之前有遇到过修改密码过于简单MySQL不通过,可参考下方博客:

https://blog.csdn.net/hello_world_qwp/article/details/79551789

问题三:设置不区分大小写后数据库启动失败

没有在数据库初始化之前设置该配置,后面再设置如果导致启动数据库失败可以参考下方博客:

https://www.cnblogs.com/czwbig/p/9961069.html