MySQL安装与配置-CentOS7

2019-03-19  本文已影响0人  wanlong1003

安装步骤:

  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/

上一篇下一篇

猜你喜欢

热点阅读