• Centos7安装mysql


    版权声明

    • 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明,所有版权属于黑马程序员或相关权利人所有。本博客的目的仅为个人学习和交流之用,并非商业用途。
    • 我在整理学习笔记的过程中尽力确保准确性,但无法保证内容的完整性和时效性。本博客的内容可能会随着时间的推移而过时或需要更新。
    • 若您是黑马程序员或相关权利人,如有任何侵犯版权的地方,请您及时联系我,我将立即予以删除或进行必要的修改。
    • 对于其他读者,请在阅读本博客内容时保持遵守相关法律法规和道德准则,谨慎参考,并自行承担因此产生的风险和责任。本博客中的部分观点和意见仅代表我个人,不代表黑马程序员的立场。

    centos7防火墙[准备]

    检测防火墙

    • 可能在安装完成之后,无法访问的情况,所以我们解决防火墙的问题
    • 检查CentOS上是否安装防火墙
      sudo systemctl status firewalld
      
      • 1
      • 如果防火墙已安装且正在运行,您将看到一条关于防火墙状态的输出,包括它是否处于活动状态。
      • 如果显示 U n i t f i r e w a l l d . s e r v i c e c o u l d n o t b e f o u n d Unit firewalld.service could not be found Unitfirewalld.servicecouldnotbefound或类似消息,表示防火墙未安装。

    允许3306端口

    • 要允许3306端口,以确保MySQL服务器可以通过该端口进行连接。
    1. 运行以下命令,检查防火墙服务的状态:
      sudo systemctl status firewalld
      
      • 1
    2. 如果防火墙服务未运行,请运行以下命令启动它:
    sudo systemctl start firewalld
    
    • 1
    1. 运行以下命令以开放3306端口:
      sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
      
      • 1
    2. 重新加载防火墙配置,以使更改生效:
    sudo firewall-cmd --reload
    
    • 1

    centos7安装mysql5.7

    检测

    1. 检测系统是否安装mysql,任选其一即可
    mysql --version
    #bash: mysql: 未找到命令...
    rpm -q mysql
    #未安装软件包 mysql 
    sudo systemctl status mysqld
    #Unit mysqld.service could not be found.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 如果已安装,需要重新安装,请参考卸载部分的操作,进行卸载!!

    安装

    1. 配置yum仓库
      • 由于MySQL并不在CentOS的官方仓库中,所以需要:导入MySQL仓库的密钥、配置MySQLQ的yum仓库
      # 更新密钥
      rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
      
      # 安装Mysql yum库
      rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
      
      • 1
      • 2
      • 3
      • 4
      • 5
      在这里插入图片描述
    2. 使用yum安装MySQL
      # yum安装Mysql
      yum -y install mysql-community-server
      
      • 1
      • 2
      在这里插入图片描述
    3. 安装完成后,启动MySQL并配置开机自启动
      systemctl start mysqld		# 启动
      systemctl enable mysqld		# 开机自启
      
      • 1
      • 2
    4. 检查MySQL的运行状态
      systemctl status mysqld
      
      • 1

    在这里插入图片描述

    配置

    • 主要配置管理员用户root的密码以及配置允许远程登录的权限。
    1. 获取MySQL的初始密码
    # 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码
    grep 'temporary password' /var/log/mysqld.log
    
    • 1
    • 2

    在这里插入图片描述

    1. 登陆MySQL数据库系统
    # 执行
    mysql -uroot -p
    # -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root
    # -p,表示使用密码登陆
    
    • 1
    • 2
    • 3
    • 4
    • 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
      在这里插入图片描述
    1. 修改root用户密码
      • 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
      ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';	-- 
      
      • 1
      在这里插入图片描述
    2. [扩展],配置root的简单密码

      可以给root设置简单密码,如123456.

    # 如果你想设置简单密码,需要降低Mysql的密码安全级别
    set global validate_password_policy=LOW; # 密码安全级别低
    set global validate_password_length=4;	 # 密码长度最低4位即可
    
    # 然后就可以用简单密码了(课程中使用简单密码,为了方便,生产中不要这样)
    ALTER USER 'root'@'localhost' IDENTIFIED BY '简单密码';
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    1. 配置root运行远程登录

      默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统
      注意,允许root远程登录会带来安全风险

    # 授权root远程登录
    grant all privileges on *.* to root@"IP地址" identified by '密码' with grant option; 
    # IP地址即允许登陆的IP地址,也可以填写%,表示允许任何地址
    # 密码表示给远程登录独立设置密码,和本地登陆的密码可以不同
    
    # 刷新权限,生效
    flush privileges;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    1. 退出MySQL控制台页面

      # 退出命令或者通过快捷键退出:ctrl + d
      exit
      
      • 1
      • 2
    2. 检查端口

      • MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态
      netstat -anp | grep 3306
      
      • 1

    在这里插入图片描述

    CentOS7安装MySQL8.0

    检测

    1. 检测系统是否安装mysql,任选其一即可
    mysql --version
    #bash: mysql: 未找到命令...
    rpm -q mysql
    #未安装软件包 mysql 
    sudo systemctl status mysqld
    #Unit mysqld.service could not be found.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 如果已安装,需要重新安装,请参考卸载部分的操作,进行卸载!!

    注意:安装操作需要root权限

    安装

    1. 配置yum仓库

      # 更新密钥
      rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
      
      # 安装Mysql8.x版本 yum库
      rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
      
      • 1
      • 2
      • 3
      • 4
      • 5

      在这里插入图片描述

    2. 使用yum安装MySQL

      # yum安装Mysql
      yum -y install mysql-community-server
      
      • 1
      • 2
    3. 安装完成后,启动MySQL并配置开机自启动

      systemctl start mysqld		# 启动
      systemctl enable mysqld		# 开机自启
      
      • 1
      • 2

      MySQL安装完成后,会自动配置为名称叫做:mysqld的服务,可以被systemctl所管理

    4. 检查MySQL的运行状态

      systemctl status mysqld
      
      • 1

    配置

    • 主要修改root密码和允许root远程登录
    1. 获取MySQL的初始密码

      # 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码
      grep 'temporary password' /var/log/mysqld.log
      
      • 1
      • 2
    2. 登录MySQL数据库系统

      # 执行
      mysql -uroot -p
      # -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root
      # -p,表示使用密码登陆
      
      • 1
      • 2
      • 3
      • 4
      • 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
    3. 修改root密码

      • 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
      ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';	-- 
      
      • 1
    4. [扩展],配置root的简单密码

      我们可以给root设置简单密码,如123456.
      请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码

      set global validate_password.policy=0;		# 密码安全级别低
      set global validate_password.length=4;		# 密码长度最低4位即可
      
      • 1
      • 2
    5. 允许root远程登录,并设置远程登录密码

      默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统

      请注意,允许root远程登录会带来安全风险

      # 第一次设置root远程登录,并配置远程密码使用如下SQL命令
      create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!';	-- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
      #授予 'root'@'%' 用户超级用户权限
      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
      # 刷新权限,使更改生效
      FLUSH PRIVILEGES;
      
      # 后续修改密码使用如下SQL命令
      #ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
    6. 退出MySQL控制台页面

      # 退出命令或者通过快捷键退出:ctrl + d
      exit
      
      • 1
      • 2
    7. 检查端口

      • MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态
      netstat -anp | grep 3306
      
      • 1

    Centos完全卸载mysql

    1. 查看 MySQL 安装版本
      mysqladmin --version
      
      • 1
    2. 查看 MySQL 运行状态
      systemctl status mysqld.service
      
      • 1
    3. 关闭 MySQL 服务
      systemctl stop mysqld.service
      
      • 1
    4. 查找已经安装的mysql.
      rpm -qa | grep -i mysql
      
      • 1

    在这里插入图片描述

    1. 删除文件

      yum -y remove mysql*
      
      • 1
    2. 查找mysql的文件目录,把所有出现的目录统统删除.可以使用rm -rf 路径,删除时请注意,一旦删除无法恢复。

       find / -name mysql
      
      • 1

      在这里插入图片描述

    rm -rf /etc/selinux/targeted/active/modules/100/mysql
    rm -rf /var/lib/mysql
    rm -rf /var/lib/mysql/mysql
    rm -rf /usr/share/mysql
    
    • 1
    • 2
    • 3
    • 4
    1. 删除配置文件
      rm -rf /etc/my.cnf
      
      • 1
    2. 删除mysql的默认密码
      rm -rf /root/.mysql_sercret
      
      • 1
    • 如果不删除,以后安装mysql这个sercret中的默认密码不会变,使用其中的默认密码就可能会报类似Access denied for user 'root@localhost' (using password:yes)的错误.
  • 相关阅读:
    4个宝宝晚上不建议出门的原因,你知道吗?
    【JavaEE网络】TCP套接字编程详解:从概念到实现
    【数据结构】二叉树
    Learn Prompt-ChatGPT 精选案例:内容总结
    什么是护网?护网怎么参加?
    【Vue】使用vue-cli搭建SPA项目的路由,嵌套路由
    Python的面向对象编程之—— 封装、继承和组合
    数据库的基本概念
    切换npm的版本
    疫情使我被迫在家朋友选择躺平,我选择了学习软件测试
  • 原文地址:https://blog.csdn.net/yang2330648064/article/details/133345234