MySQL5.7.21在Linux下安装教程

3 篇文章 0 订阅

MySQL5.7.21在Linux下安装教程

本文主要介绍怎么在Linux下安装MySQL5.7.21,需要准备的环境有:

  • CentOS 6.9
  • mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

卸载旧版mysql

  • 查看rpm包
    rpm -qa|grep mysql
    查看
  • 卸载mysql
    rpm -e --nodeps mysql-libs-5.1.73-8.el6_8.x86_64
    卸载
  • 查找mysql残留包,有则删除,没有则忽略
    find / -name mysql

解压安装包

  • 解压
    tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
    解压
  • 移动并重命名至local文件夹下(可选,任意目录均可
    mv mysql-5.7.21-linux-glibc2.12-x86_64 /usr/local/mysql
    移动

创建用户组及用户

  • 创建用户组
    groupadd mysql
  • 创建用户
    useradd -r -g mysql -s /bin/false mysqluseradd -r -g mysql mysql

Because the user is required only for ownership purposes, not login purposes, the useradd command uses the -r and -s /bin/false options to create a user that does not have login permissions to your server host. Omit these options if your useradd does not support them.—— [ MySQL 5.7 ]

MySQL官网中注释到使用到的mysql用户仅用于所有权控制而非登录,所以可以使用-r及-s来避免用户登录。若系统不支持改参数则可以忽略。

安装MySQL

  • 修改工作目录权限
    cd /usr/local/mysql
    chown -R mysql:mysql ./
    这里写图片描述
  • 拷贝my.cnf文件到etc目录下
    自5.7.18之后就不在提供my-default.cnf文件,为了使用更丰富的参数设置,这里我们提供默认的一些内容,之后可以根据需要自行添加所需参数,如下:
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It‘s a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....

# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

拷贝以上内容,在etc目录下新建my.cnf,并粘贴内容即可,其中socket所在目录/var/lib/mysql需要创建以及mysql用户权限,使用chown赋权限即可
这里写图片描述
- 执行安装,进入bin目录下
mysqld --initialize --user=mysql--initialize-insecure --user=mysql
前者会随机生成一个密码,后者不会,此处使用前者
这里写图片描述
此处初始密码为vKsJ>awXO0&B
- 修改目录权限,进入mysql目录
chown -R root:root ./
chown -R mysql:mysql data
这里写图片描述

启动MySQL服务

  • 拷贝mysql服务,进入mysql目录
    cp support-files/mysql.server /etc/init.d/mysql
    如果mysql.server不是可执行文件,则需要使用chmod命令赋值
    这里写图片描述
  • 注册开机启动服务
    chkconfig --add mysql
    `chkconfig --list
    这里写图片描述
  • 启动mysql服务
    service mysql start
    这里写图片描述
  • 链接socket文件至/tmp/目录下
    ln -s /var/lib/mysql/mysql.sock /tmp/
  • 添加mysql命令快捷访问
    ln -s /usr/local/mysql/bin/mysql /usr/bin/
  • 使用初始密码登录mysql服务
    mysql -u root -p
  • 更新密码
    alter user 'root'@'localhost' identified by 'root';
    flush privileges;
  • 开启远程连接权限
    update user set host='%' where user='root';
    flush privileges;
    或者
    grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;其中%可以替换成指定主机ip,identified by后跟密码
    flush privileges;

注意事项

  • mysql5.7安装包中已经没有scripts文件夹,所有命令均在bin目录下,所以使用./scripts/mysql_install_db命令来初始化无效,可以改用./mysqld –initialize –user=mysql
    这里写图片描述
  • my.cnf文件中的socket所在目录/var/lib/mysql需要提前创建并赋予mysql权限,否则会出现无法创建socket文件的错误
  • 执行./mysqld –initialize命令时可能报如下错误
    这里写图片描述
    这里写图片描述
    通过安装libaio、numactl包来解决,yum install libaio numactl -y
  • 初次登录时可能会出现以下错误
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
    只需将socket文件链接过去即可
    ln -s /var/lib/mysql/mysql.sock /tmp/
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值