美文网首页
CentOS 7 官方yum库安装 MySQL

CentOS 7 官方yum库安装 MySQL

作者: 程序员成长记 | 来源:发表于2017-08-15 15:20 被阅读0次

    问题描述:

    CentOS 7 之后的版本使用yum安装MySQL是默认安装miroadb,为了开发方便,想依然使用MySQL,就Google了一下,经过几个小时的努力,解决了一切问题。


    1. 创建MySQL的yum库,通过官方yum库下载

    选择最新的MySQL源rpm包下载:

    image.png
    或者通过 wget命令(最新下载地址可自己通过官网获取):
    # 下载mysql源安装包
    wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
    # 安装mysql源
    yum localinstall mysql57-community-release-el7-8.noarch.rpm
    # 检查MySQL源是否安装成功
    yum repolist enabled | grep "mysql.*-community.*"
    

    2. 安装 MySQL

    • 通过修改 /etc/yum.repos.d/mysql-community.repo 文件来改变默认安装版本,该文件是一个指定子资源的入口。
      例如,如果需要启用 5.6 版本的源,就需要将如下所示的 5.6 版本源设置为 enabled=1 并将5.7版本源设置为 enabled=0。若安装其他如5.5版本,操作类似:
    # Enable to use MySQL 5.6
    [mysql56-community]
    name=MySQL 5.6 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
    enabled=1   ### 启用5.6版本源
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    [mysql57-community]
    name=MySQL 5.7 Community Server
    baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
    enabled=0    ### 禁用5.7版本源
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    • 安装MySQL:
    yum install mysql-community-server
    
    • 启动MySQL服务:
    systemctl start mysqld
    # 或者
    service mysqld start
    

    注意:在5.7版本的MySQL启动时,因为数据目录是空的,所以会有以下操作:

    服务器初始化
    在数据目录生成一个SSL证书和key文件
    validate_password 插件安装并启用
    创建一个超级管理帐号'root'@'localhost'。管理的密码会保存在错误日志文件中,可以通过以下命令查看:

    $ sudo grep 'temporary password' /var/log/mysqld.log
    

    可以通过以下命令并使用自动生成的临时密码登录,然后修改为一个自定义密码:

    $ mysql -u root -p 
    

    密码修改:

    ### 在MySQL中:
    $ ALTER USER 'root'@'localhost' IDENTIFIED BY 'newPassword';   
    ### 上面的方法尝试失败,所以我通过了下面的方法:
    ### 在Linux中:
    mysqladmin -u root password 'newPassword'
    ### 提示Warning: Using a password on the command line interface can be insecure,可忽略,也可自己查查问题,应该是因为密码简单等小问题出现的。
    

    MySQL的validate_password插件是默认安装的。这要求MySQL密码至少包含一个大写字母、一个小写字母、一个数字和一个特殊字符,并且总密码长度至少为8个字符。

    • 查看MySQL运行状态:
      service mysqld status

    3. 其他设置与优化

    默认配置文件路径:

    配置文件: /etc/my.cnf
    日志文件: /var/log//var/log/mysqld.log
    服务启动脚本: /usr/lib/systemd/system/mysqld.service
    socket文件: /var/run/mysqld/mysqld.pid

    设置开机启动

    systemctl enable mysqld
    systemctl daemon-reload
    

    修改root默认密码

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

    grep 'temporary password' /var/log/mysqld.log
    mysql -uroot -p
    # 进入MySQL
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
    # 或者
    mysql> set password for 'root'@'localhost'=password('MyNewPass4!'); 
    

    关于密码

    • 通过msyql环境变量可以查看密码策略的相关信息:
    mysql> show variables like '%password%';
    
    • 在/etc/my.cnf文件添加validate_password_policy配置,指定密码策略
    # 选择0(LOW),1(MEDIUM),2(STRONG)其中一种,选择2需要提供密码字典文件
    validate_password_policy=0
    
    • 如果不需要密码策略,添加my.cnf文件中添加如下配置禁用即可:
    validate_password = off
    # 重启MySQL服务生效
    systemctl restart mysqld
    

    添加远程登录访问用户

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

    mysql> GRANT ALL PRIVILEGES ON *.* TO 'yangxin'@'%' IDENTIFIED BY 'Yangxin0917!' WITH GRANT OPTION;
    

    配置默认编码为utf8

    修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:

    [mysqld]
    character_set_server=utf8
    init_connect='SET NAMES utf8'
    

    相关文章

      网友评论

          本文标题:CentOS 7 官方yum库安装 MySQL

          本文链接:https://www.haomeiwen.com/subject/jptvrxtx.html