zoukankan      html  css  js  c++  java
  • Linux之 Centos7.x上安装mysql5.7.x

    最近沉迷于Linux的学习,想试着部署一下自己写的项目,于是乎先要配置好环境,这篇就来讲讲我是怎么配置MySQL环境的

    下载MySQL

    官网选择合适的下载

    传输到远程服务器

    1.新建目录 data ,将下载好的MySQL压缩包上传到新建的 data 文件夹中

    # cd /
    # mkdir data

    2.上传操作

    下载xftp,连接远程服务器,直接拖拽上传到 data 文件下

    安装MySQL

    安装前环境准备

    查看操作系统版本

    查看当前系统版本,是否与下载的MySQL版本相符

    # cat /etc/redhat-release

    查看是否安装过mysql

    1.首先检测Linux操作系统中是否安装了MySQL:

    # rpm -qa | grep -i mysql

    2.如果有信息出现,则进行删除,命令如下卸载:

    # rpm -e --nodeps 包名

    注意:卸载后 /var/lib/mysql 中的数据及 /etc/my.cnf 不会删除,确定没用后就手工删除:

    # rm -f /etc/my.cnf
    
    # rm -fr /var/lib/mysql

    3.查看旧的mysql安装目录

    # whereis mysql

    4.删除旧的安装目录

    # rm -rf 目录名

    5.删除完毕后,才能进行安装,否则安装会出错

    安装MySQL

    解压安装包

    进入 /data 将之前上传好的安装包解压,并命名为mysql

    # cd /data
    
    # tar -zxvf 安装包 -C /data/
    
    # mv mysql-5.7.xx-linux-glibc2.12-x86_64 mysql

    进入mysql,创建data文件夹

    配置安装

    1.查看mysql用户或用户组是否存在

    # id mysql

    2.如果存在,需删除用户组和用户

    # groupdel mysql
    # userdel
    -f mysql

    3.添加mysql用户组和用户

    创建mysql组
    # groupadd mysql
    
    查看是否创建成功
    # cat /etc/group | grep mysql
    创建mysql用户
    # useradd -r -g mysql mysql
    
    查看是否创建成功
    # cat /etc/passwd | grep mysql

    4.给mysql用户设置密码

    # passwd mysql

    5.给mysql授权(读、写、执行)

    # chown -R mysql:mysql /data/mysql
    
    # chmod -R 775 /data/mysql

    6.配置my-default.cnf配置文件

    进入 mysql/support-files 文件夹的内容,查看是否有 my-default.cnf 配置文件,若没有默认的配置文件,则需手动创建一个 my-default.cnf 配置文件,并添加配置内容

    # cd /data/mysql/support-files/
    编辑my-default.cnf配置文件
    # vi my-default.cnf

    编辑内容如下(进入编辑页面,按 i 可编辑修改,按ctrl+c退出,然后 :wq 保存修改

    [client]
    port = 3306
    socket = /tmp/mysql.sock
    [mysqld]
    # mysql存放的位置
    basedir = /data/mysql
    # data存放的位置
    datadir = /data/mysql/data
    bind-address = 0.0.0.0
    port = 3306
    socket = /tmp/mysql.sock
    skip-external-locking
    key_buffer_size = 128M
    max_allowed_packet = 1M
    table_open_cache = 256
    sort_buffer_size = 1M
    read_buffer_size = 1M
    read_rnd_buffer_size = 2M
    myisam_sort_buffer_size = 8M
    thread_cache_size = 8
    query_cache_size= 16M
    max_connections = 213
    wait_timeout = 31536000
    interactive_timeout = 30
    max_connect_errors = 9
    long_query_time = 1
    tmp_table_size = 16M
    #log-bin=mysql-bin
    #binlog_format=mixed
    #server-id = 1
    lower_case_table_names = 1
    [mysqldump]
    quick
    max_allowed_packet = 8M
    [mysql]
    no-auto-rehash
    [myisamchk]
    key_buffer_size = 12M
    sort_buffer_size = 1M
    read_buffer = 1M
    write_buffer = 1M
    [mysqlhotcopy]
    interactive-timeout

    7.重新授权mysql

    # chown -R mysql:mysql /data/mysql
    
    # chmod -R 775 /data/mysql

    8.增加配置文件到/etc下

    复制 support-files 文件下的 my-default.cnf 文件到 /etc/my.cnf 

    # cp my-default.cnf /etc/my.cnf

    复制 mysql.server 文件下的 my-default.cnf 文件到 /etc/init.d/mysqld 

    # cp mysql.server /etc/init.d/mysqld

    9.编辑 mysqld ,修改为mysql的指定路径

    # vi /etc/init.d/mysqld
    修改内容:

    basedir=/data/mysql datadir=/data/mysql/data then basedir=/data/mysql datadir=/data/mysql/data if test -Z "$datadir" then datadir=/data/mysql/data fi sbindir=/data/mysql/bin libexecdir=/data/mysql/bin

    9.添加mysql环境变量

    # vi /etc/profile
    文件末尾添加:
    
    export MYSQL=/data/mysql
    export path=$MYSQL/bin:

    10.修改后重新生效环境变量

    # source /etc/profile

    11.初始化数据库操作

    # cd /data/mysql/bin
    # ./mysqld --basedir=/data/mysql --user=mysql --datadir=/data/mysql/data --initialize

    - 如果报 error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 错误,就需要 安装libaio

    libaio安装命令
    # yum install libaio

    - 如果报 [ERROR] --initialize specified but the data directory has files in it. Aborting 错误,说明已经执行过一次,需要把 /data/mysql/data 目录删除,重新创建重新授权

    # cd /data/mysql
    # rm -rf data
    # mkdir data
    # chown -R mysql:mysql /data/mysql
    # chmod -R 775 /data/mysql

    然后再执行初始化数据库操作

    # cd /data/mysql/bin
    # ./mysqld --basedir=/data/mysql --user=mysql --datadir=/data/mysql/data --initialize

    12.启动mysql服务

    # service mysqld start

    修改密码

    1.关闭mysql服务

    # service mysqld stop

    2.把 mysql/bin/mysqld_safeusr/local/mysql 换成指定安装的路径名,然后执行下面命令

    # mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

    3.此时已经进入免过滤状态,修改root密码

    (注:5.6版本user表中密码字段是password,5.7之后改为authentication_string,不再有password)

    # mysql
    # use mysql;
    # update user set authentication_string=PASSWORD('root') where user='root';
    # flush privileges;
    # exit;

    4.第一次登录,还要再次设置密码,修改之后才会创建成功,不然会报 ERROR 1820 (HY000): You must reset your password using ALTER USER statement 错误

    # mysql -u root -p 
    # alter user 'root'@'localhost' identified by 'root';
    # flush privileges;
    # exit;

    远程连接登录

    1.确保3306端口以开放

    # show global variables like 'port'

    (若不是3306端口可进行修改mysql端口号,# vi /etc/my.cnf 命令进入修改 port=3306 ,保存并重启 # service mysqld restart

    2.确保防火墙关闭

    CentOS7.x 默认的防火墙firewalle(CentOS6.x默认防火墙是iptables

    查看防火墙状态(关闭显示not running,开启显示running)
    # firewall-cmd --state
    
    停止防火墙firewall
    # systemctl stop firewalld.service
    
    禁止防火墙firewall开机启动(一般用这个)
    # systemctl disable firewalld.service

    3.修改远程连接权限

    不修改的话,远程无法连接上

    修改user表中root用户的host,修改后重启服务

    # mysql -uroot -p
    # use mysql;
    # update user set host='%' where user='root';
    # exit;
    # service mysqld restart

    4.添加阿里云安全组

    官方文档

    设置mysql开机自启动

    # chkconfig mysqld on
  • 相关阅读:
    beautifulsoup的一些使用
    requests(爬虫常用)库的使用
    find a maximum product triplet in this array
    Minimum difference between two arrays
    [LeetCode] Binary Tree Upside Down
    n 刀切多少块pizza
    Biased Random Number Generator
    linked list焦点问题,面经里很多,考虑相交不相交,有环无环 + Find Leaves of Binary Tree (Java)
    replace string use another
    Union and Intersection of two sorted list
  • 原文地址:https://www.cnblogs.com/niudaben/p/12611563.html
Copyright © 2011-2022 走看看