0%

CenterOS 7 安装mysql 5.7

首先,最重要的,签完不要在官网下载,太慢了

好用的镜像 http://mirrors.sohu.com/
1
2
3
4
mysql-community-server-5.7.28-1.el7.x86_64.rpm
mysql-community-common-5.7.28-1.el7.x86_64.rpm
mysql-community-client-5.7.28-1.el7.x86_64.rpm
mysql-community-libs-5.7.28-1.el7.x86_64.rpm
安装上传工具
1
yum install lrzsz
安装一个rpm包:

用法:rpm -ivh rpm_name

参数解释:

-i(install):安装软件包。
-v(verbose):显示安装的过程信息。可视化。
-h(hash):软件安装的时候列出哈希标记。即显示安装进度。
另外在安装一个rpm包时常用的附带参数有:
–force : 强制安装,即使覆盖属于其他包的文件也要安装
–nodeps : 当要安装的rpm包依赖其他包时,即使其他包没有安装,也要安装这个包。

安装mysql

先安装libs,common,client,最后安装server,前三个顺序无所谓

配置mysql
  1. 检查mysql源是否安装成功

    1
    shell> yum repolist enabled | grep "mysql.*-community.*"
  2. 启动MySQL服务

    1
    shell> systemctl start mysqld

    默认配置文件路径:
    配置文件:/etc/my.cnf
    日志文件:/var/log//var/log/mysqld.log
    服务启动脚本:/usr/lib/systemd/system/mysqld.service
    socket文件:/var/run/mysqld/mysqld.pid
    遇到无法启用的问题

    1
    tail -f /var/log/mysqld.log 

    发现 2019-01-28T09:49:57.076019Z 0 [ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4800!
    尝试 cd /var/lib/mysql sudo rm -R mysql

  3. 开机启动

    1
    2
    shell> systemctl enable mysqld
    shell> systemctl daemon-reload

    这样就好啦

  4. 修改root本地登录密码
    mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。通过下面的方式找到root默认密码,然后登录mysql进行修改:

    1
    shell> grep 'temporary password' /var/log/mysqld.log

    root默认密码

    1
    2
    shell> mysql -uroot -p
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';

    或者

    1
    mysql> set password for 'root'@'localhost'=password('MyNewPass4!'); 

    注意:mysql5.7默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含:大小写字母、数字和特殊符号,并且长度不能少于8位。否则会提示ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误,如下图所示:
    密码策略提示

  5. 通过msyql环境变量可以查看密码策略的相关信息:

    1
    mysql> show variables like '%password%';

    mysql密码策略
    validate_password_policy:密码策略,默认为MEDIUM策略
    validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
    validate_password_length:密码最少长度
    validate_password_mixed_case_count:大小写字符长度,至少1个
    validate_password_number_count :数字至少1个
    validate_password_special_char_count:特殊字符至少1个
    上述参数是默认策略MEDIUM的密码检查规则。
    共有以下几种密码策略:
    策略 检查规则
    0 or LOW Length
    1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
    2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file
    MySQL官网密码策略详细说明:
    http://dev.mysql.com/doc/refman/5.7/en/validate-password-options-variables.html#sysvar_validate_password_policy
    修改密码策略
    在/etc/my.cnf文件添加validate_password_policy配置,指定密码策略

    1
    2
    # 选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件
    validate_password_policy=0

    如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可:
    validate_password = off
    重新启动mysql服务使配置生效:
    systemctl restart mysqld

  6. 添加远程登录用户
    默认只允许root帐户在本地登录,如果要在其它机器上连接mysql,必须修改root允许远程连接,或者添加一个允许远程连接的帐户,为了安全起见,我添加一个新的帐户:

    1
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'yangxin'@'%' IDENTIFIED BY 'Yangxin0917!' WITH GRANT OPTION;
  7. 配置默认编码为utf8
    修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:

    1
    2
    3
    [mysqld]
    character_set_server=utf8
    init_connect='SET NAMES utf8'

    重新启动mysql服务,查看数据库默认编码如下所示:

  8. 添加访问权限

    1
    2
    3
    alter user 'root'@'localhost' identified with mysql_native_password by 'a7dz/NG=R6Eh';  
    grant all privileges on *.* to 'root'@'%' identified by 'a7dz/NG=R6Eh';
    grant all privileges on *.* to 'root'@'%' identified by 'a7dz/NG=R6Eh' with grant option;