Linux 环境 Centos/Redhat 安装部署 Mysql5.7

Mysql

安装Mysql
  • 环境版本
    Redhat/Centos7.0
    mysql5.7
  • 查看mysql软件

#看mysql进程
ps -ef | grep mysqld
#查看mysql软件信息
rpm -qa | grep mysql
yum repolist all | grep mysql
  • 卸载mysql
#卸载mysql
yum remove -y mysql mysql-libs mysql-common
#删除mysql下的数据文件
rm -rf /var/lib/mysql
#删除mysql配置文件
rm -rf /etc/my.cnf
#删除组件
yum remove -y mysql*
  • 安装mysql
#下载mysql
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
#执行rpm源文件
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
#使用此命令可以查看 MySQL Yum 存储库中的所有子存储库,并查看其中哪些子存储库已启用或禁用
yum repolist all | grep mysql
#关闭mysql8的下载源
#yum-config-manager找不到 通过命令安装 yum -y install yum-utils
yum-config-manager --disable mysql80-community
#开启mysql5.7下载源
yum-config-manager --enable mysql57-community
#安装mysql5.7
yum install -y mysql-community-server
  • 配置mysql
vim /etc/my.cnf
[mysqld]
# MySQL设置大小写不敏感:默认:区分表名的大小写,不区分列名的大小写
# 0:大小写敏感 1:大小写不敏感
lower_case_table_names=1
# 默认字符集
character-set-server=utf8
  • 启动mysql
  • (启动之前先看下下面的启动问题一,问题二一般是因为安装完成后直接启动导致的,建议先按照问题一处理完成后重启系统,重启系统后mysqld进程应该会自动启动,可以直接查看修改密码的步骤)
systemctl start mysqld
  • 启动报错

    • 参考解决Linux-Centos7启动Mysql服务失败

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1BXZWdiG-1626425629427)(C:\Users\QianShuang\AppData\Roaming\Typora\typora-user-images\image-20210716154703524.png)]

      • selinux安全模式限制了启动,解决方法如下:

        • 查看SELinux状态

          #getenforce 命令是单词get(获取)和enforce(执行)连写,可查看selinux状态,与setenforce命令相反。
          #setenforce 命令则是单词set(设置)和enforce(执行)连写,用于设置selinux防火墙状态,如: setenforce 0用于关闭selinux防火墙,但重启后失效
          getenforce
          #可能结果:
          #状态码Enforcing 强
          #状态码Disabled 禁用
          
          /usr/sbin/sestatus
          #可能结果:
          #SELinux status:                 enabled
          #SELinuxfs mount:                /sys/fs/selinux
          #SELinux root directory:         /etc/selinux
          #Loaded policy name:             targeted
          #Current mode:                   enforcing
          #Mode from config file:          enforcing
          #Policy MLS status:              enabled
          #Policy deny_unknown status:     allowed
          #Max kernel policy version:      28
          #SELinux status:selinux防火墙的状态,enabled表示启用selinux防火墙
          #Current mode: selinux防火墙当前的安全策略,enforcing 表示强
          
        • 关闭SELinux

          #临时关闭,用于关闭selinux防火墙,但重启后失效。
          setenforce 0 
          ---------------------------------------------------------
          #永久关闭,修改selinux的配置文件,重启后生效。
          vim /etc/selinux/config
          SELINUX=enforcing =修改为> SELINUX=disabled
          reboot
          service mysqld start
          
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7adNKq5b-1626425629428)(C:\Users\QianShuang\AppData\Roaming\Typora\typora-user-images\image-20210716155942014.png)]

      • 错误原因是因为数据库启动时已经进行初始化了,所以不能再进行初始化用户了,因为mysql在初始化的时候会自动创建一个root用户的。

      • 解决办法

        • #停止数据库
          systemctl stop mysql.service
          #在配置文件中找到数据目录
          vi /etc/my.cnf
          #找到datadir配置 用于指定数据目录 默认/var/lib/mysql
          rm -rf /var/lib/mysql
          #删除后重新进行初始化
          mysqld --initialize --user=mysql
          service mysqld start
          
  • 设置root用户密码

    • 安装了mysql5.7之后初始密码不再默认为空,初始密码会生成一个默认密码。密码会输出到mysql日志 中。

    • 日志文件的位置在 /var/log/mysqld.log

      #查找log文件默认密码
      cat /var/log/mysqld.log | grep 'temporary password'
      

-u和用户名 -p和密码没空格

#1.登录mysql
[root@localhost ~]# mysql -uroot -p't)WMH;uUe9Jn'
#修改密码
mysql> alter user 'root'@'localhost' identified by 'root';
#如果修改失败 尝试用下面方式设置密码强度
#设置密码长度最低位数
mysql> set global validate_password_length=4;
#设置密码强度级别
mysql> set global validate_password_policy=0;
#默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特 殊字符。
Policy Tests Performe
0 or LOW Length
1 or MEDIUM numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters
  • 远程连接授权

    • 授权命令

      • #示例
        grant 权限 on 数据库对象 to 用户
        
      • #授予root用户对所有数据库对象的全部操作权限:
        GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
        #刷新权限
        FLUSH PRIVILEGES;
        #查看权限
        show grants;
        
      • 命令说明:

      • ALL PRIVILEGES :表示授予所有的权限,此处可以指定具体的授权权限。

      • *.* :表示所有库中的所有表

      • ‘root’@’%’ : root是数据库的用户名,%表示是任意ip地址,可以指定具体ip地址。

      • IDENTIFIED BY ‘mypassword’ :mypassword是数据库的密码。

    • 防火墙策略

      • 关闭linux的防火墙

        • systemctl stop firewalld(默认)
          systemctl disable firewalld.service(设置开启不启动)
          
      • 开放数据库端口

        • #1、开启防火墙 
          systemctl start firewalld
          #2、开放指定端口
          firewall-cmd --zone=public --add-port=3306/tcp --permanent
          #命令含义:
          #--zone #作用域
          #--add-port=3306/tcp  #添加端口,格式为:端口/通讯协议
          #--permanent  #永久生效,没有此参数重启后失效
          
          #3、重启防火墙
          firewall-cmd --reload
          
          #4、查看端口号
          netstat -ntlp   //查看当前所有tcp端口·
          
          netstat -ntulp | grep 3306   //查看所有3306端口使用情况·
          
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值