侧边栏壁纸
博主头像
Ivan Zhang

所谓更牛,就是换个罪受

  • 累计撰写 48 篇文章
  • 累计创建 54 个标签
  • 累计收到 6 条评论

目 录CONTENT

文章目录

Centos 安装/卸载 MySQL 8.0 (RPM 方式)

Ivan Zhang
2022-09-14 / 0 评论 / 0 点赞 / 539 阅读 / 3,399 字
温馨提示:
本文最后更新于 ,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。
有什么问题或观点欢迎评论留言,或者 交流。
如果觉得文章对您有所帮助,可以给博主打赏鼓励一下。

安装

卸载默认的 MariaDB 数据库(Centos 一般默认有 MariaDB)

# 查看是否有 MariaDB 相关包
[root@localhost ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
[root@localhost ~]# 

安装 Oracle MySQL 数据库

  1. 在 root 目录下,安装 mysqlmysql-devel
    yum install -y mysql
    yum install -y mysql-devel
    
  2. 安装 mysql-server,安装完成后相关包既安装完成,先不要启动,调整下初始化配置。
    wget http://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
    rpm -ivh mysql80-community-release-el7-5.noarch.rpm
    yum install -y mysql-community-server
    

创建配置文件

在 MySQL 数据库中我们可以通过配置 lower_case_table_names=1 来让其忽略大小写。在 MySQL 8 以下版本可以通过修改 /etc/my.cnf 文件后重启服务修改,但在 MySQL 8 版本,只能在初始化的时候设置。

lower_case_table_names 的值:

  • 如果设置为 0 (Linux 默认),表名将按指定方式存储,并且在对比表名时区分大小写。
  • 如果设置为 1 (Windows 默认),表名将以小写形式存储在磁盘上,在对比表名时不区分大小写。
  • 如果设置为 2 (Mac OS 默认,Linux 不支持 2),则表名按给定格式存储,但以小写形式进行比较。

如果使用 InnoDB 表,则应在所有平台上将此变量设置为 1,以强制将名称转换为小写。

必须在初始化 MySQL 服务器(安装 MySQL 后的首次启动)之前将 lower_case_table_names 配置为所需的值。 在大多数情况下,这需要在首次启动 MySQL 服务器之前在 MySQL 配置文件中设置 lower_case_table_names

创建 /etc/my.cnf 文件

[mysqld]
# 表名将以小写形式存储在磁盘上,在对比表名时不区分大小写
lower_case_table_names=1
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
# 默认字符集,这里的字符编码必须和 /usr/share/mysql/charsets/Index.xml 中一致
default-character-set=utf8

服务相关处理

  1. 设置为开机启动服务
    systemctl enable mysqld.service
    
  2. 启动/停止/重启/查看服务状态
    systemctl start/stop/restart/status mysqld.service
    

初始化设置/示例

  1. 修改密码
    MySQL 8 初次安装后,需要先通过 cat /var/log/mysqld.log | grep password 命令查看密码,修改密码时,需要符合长度 8+,且含有数字、小写或大写字母、特殊字符

    # 登录 mysql 并输入密码
    mysql -u root -p
    
    # MySQL 8 修改密码
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
    
    # 设置 root 用户密码永不过期(按需设置)
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; 
    
    # 设置 root 账户允许被外部访问(按需设置)
    UPDATE mysql.`user` SET host="%" WHERE user="root";
    
    # 刷新权限(必须)
    FLUSH PRIVILEGES;
    
    # 查看 `lower_case_table_names` 配置是否生效
    show variables like 'lower%';
    
  2. 创建新用户和数据库,用户授权

    # 创建用户(默认密码需包含 8+ 位大小写字母数字和符号)
    CREATE USER 'username'@'%' IDENTIFIED BY 'password';
    
    # 创建数据库
    CREATE DATABASE IF NOT EXISTS dbname DEFAULT CHARACTER SET utf8mb4;
    
    # 如果要允许用户还能授权,则加 WITH GRANT OPTION
    GRANT ALL PRIVILEGES ON dbname.* to 'username'@'%' WITH GRANT OPTION;
    
    # 刷新权限配置
    FLUSH PRIVILEGES;
    

防火墙(如果有开启)

  1. 查看防火墙状态
    systemctl status firewalld
    
  2. 查看开放的端口列表
    firewall-cmd --zone=public --list-ports
    
  3. 开放3306端口
    firewall-cmd --zone=public --add-port=3306/tcp --permanent
    
  4. 重新加载防火墙
    firewall-cmd --reload
    

卸载 MySQL

  1. 查看 MySQL 安装了哪些东西
    [root@localhost ~]# rpm -qa | grep mysql
    mysql-community-client-8.0.30-1.el7.x86_64
    mysql-community-server-8.0.30-1.el7.x86_64
    mysql-community-icu-data-files-8.0.30-1.el7.x86_64
    mysql-community-client-plugins-8.0.30-1.el7.x86_64
    mysql80-community-release-el7-5.noarch
    mysql-community-libs-8.0.30-1.el7.x86_64
    mysql-community-common-8.0.30-1.el7.x86_64
    mysql-community-devel-8.0.30-1.el7.x86_64
    
  2. 卸载已安装的组件
    yum -y remove mysql*
    
  3. 查看是否卸载完成
    [root@localhost ~]# rpm -qa | grep mysql
    [root@localhost ~]#
    
  4. 查找 mysql 相关目录和文件
    [root@localhost ~]# find / -name mysql
    /etc/logrotate.d/mysql
    /var/lib/mysql
    /var/lib/mysql/mysql
    /usr/bin/mysql
    /usr/lib/python2.7/site-packages/azure/mgmt/rdbms/mysql
    /usr/lib/python2.7/site-packages/clufter/filters/cluster/rm/mysql
    /usr/lib64/mysql
    /usr/include/mysql
    /usr/include/mysql/mysql
    [root@localhost ~]# 
    
  5. 通过 rm -rf 命令删除相关目录和文件,如:
    rm -rf /usr/lib/mysql
    
  6. 删除 /etc/my.cnf 配置文件
    rm -f /etc/my.cnf
    
  7. 删除 /var/log/mysqld.log(如果不删除这个文件,会导致新安装的 mysql 无法生存新密码,导致无法登陆)
    rm -rf /var/log/mysqld.log
    

参考链接

0

评论区