美文网首页
MySQL安装与配置-CentOS7

MySQL安装与配置-CentOS7

作者: wanlong1003 | 来源:发表于2019-03-19 18:05 被阅读0次

    安装步骤:

    1. 添加yum存储库
    在 http://dev.mysql.com/downloads/repo/yum/ 下载相应操作系统的发行包 
    使用 rpm -Uvh platform-and-version-specific-package-name.rpm 安装存储库包,该包中包括了 mysql-community.repo文件 
    
    1. 查看存储库状态 yum repolist all | grep mysql
    2. 默认存储库中启用的是最新版本的mysql,如果需要安装指定版本的,需要修改/etc/yum.repos.d/mysql-community.repo文件,如下
    [mysql57-community] 
    name=MySQL 5.7 Community Server 
    baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/6/$basearch/ 
    enabled=1   #是否启用
    gpgcheck=1 
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
    
    1. 然后启用该存储库 yum repolist enabled | grep mysql
    2. 安装mysql社区版 yum install mysql-community-server
    3. 启动mysql 服务 systemctl start mysqld.service

    启动初始化

    Mysql5.7开始,如果服务器数据目录为空,启动服务时mysql主要做了以下工作

    1. 服务器初始化
    2. 在数据目录中生成SSL证书和密钥文件
    3. 安装并启用插件 validate_passwork
    4. 超级账户 root@localhost已创建,密码保存在日志文件中,通过下面的命令查看
      grep 'temporary password' /var/log/mysqld.log

    roo账户设置

    使用 mysql -uroot -p 命令进入mysql命令行,默认密码使用 grep 'temporary password' /var/log/mysqld.log 查询

    #修改密码 
    mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';  
    #切换数据库
    mysql> use mysql  
    #设置root用户可远程登陆 
    mysql> update user set host='%' where user='root' 
    

    数据目录迁移

    默认的数据库目录在 /var/lib/mysql 一般我们要吧数据放在独立的磁盘中,比如 /mnt/data/mysql

    1. 移动 /var/lib/mysql 到 /mnt/data/mysql
    2. 修改文件夹权限: chown -R mysql:mysql /mnt/data/mysql
    3. 修改配置文件/etc/my.cnf 中的 : datadir=/mnt/data/mysql
    4. 设置SELinux: chcon -R -t mysqld_db_t /mnt/data/mysql
      启动MySQL服务,启动成功即可清理 /var/lib/mysql, 注意保留 mysql.sock*文件

    防火墙设置

    firewall-cmd --zone=public --add-port=3306/tcp --permanent #开启防火墙规则

    firewall-cmd --reload #重新载入

    配置文件 my.cnf

    [mysqld]
    datadir=/mnt/data/mysql  #数据路径
    socket=/var/lib/mysql/mysql.sock
    symbolic-links=0
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    bind-address=0.0.0.0   #绑定的IP
    port=3306   #绑定的端口
    character-set-server=utf8   #服务器端字符集
    lower_case_table_names=1    #表名不区分大小写
    #解决 sql_mode=only_full_group_by 的错误
    sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"
    # 解决长时间不访问连接失效的问题
    interactive_timeout=259200
    wait_timeout=259200
    
    [mysql]
    default-character-set=utf8   #客户端字符集
    

    扩展阅读:

    MySQL在Linux下数据库名、表名、列名、别名大小写规则是这样的:

    1. 数据库名与表名是严格区分大小写的;
    2. 表的别名是严格区分大小写的;
    3. 列名与列的别名在所有的情况下均是忽略大小写的;
    4. 变量名也是严格区分大小写的;

    官方说明:

    https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

    相关文章

      网友评论

          本文标题:MySQL安装与配置-CentOS7

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