zoukankan      html  css  js  c++  java
  • mysql5.7 源码安装步骤

    操作系统:centos 7

    mysql版本:5.7  下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

    说明:以下都是root用户操作的。

    一、数据库安装

    1、查看系统是否有旧版的mysql

    # rpm -qa |egrep -i 'mysql|mariadb'

    如果有的话请先卸载,卸载命令:

    # rpm -ev 软件包名称

     2、查看老版本mysql相关的安装目录:

    # find / -name mysql

    有的话就删掉

    3、创建/data/mysql目录用于存放mysql软件包,并下载软件包

    4、解压软件包并重命名

    # cd /data/mysql
    # tar zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
    # mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql-5.7.24

    5、创建mysql用户(如果原来已经存在该用户,可以继续使用,也可以重新删除创建,删除用户命令: userdel -r mysql)

    # groupadd mysql
    # useradd -r -s /sbin/nologin -g mysql mysql
    # getent passwd mysql #该命令用于查看是否成功创建mysql用户
    mysql:x:986:1001::/home/mysql:/sbin/nologin

    7、修改/etc/my.cf文件

    [mysqld]
    skip-name-resolve basedir
    =/data/mysql/mysql-5.7.24 #新添加的,用于mysql初始化的时候去找相应的lib库等等。 datadir=/data/mysql/mysql-5.7.24/data #原配置修改的,存放数据的目录 socket=/data/mysql/mysql-5.7.24/mysql.sock #原配置修改的,mysql的sock文件 # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Settings user and group are ignored when systemd is used. # If you need to run mysqld under a different user or group, # customize your systemd unit file for mariadb according to the # instructions in http://fedoraproject.org/wiki/Systemd [mysqld_safe] log-error=/data/mysql/mysql-5.7.24/mysql.err-log #原配置修改的,mysql错误日志存放路径 character-set-server=utf8 #添加的,指定字符编码 pid-file=/data/mysql/mysql-5.7.24/mysql.pid #原配置修改的,指定pid # # include all files from the config directory # !includedir /etc/my.cnf.d





    或者:



    [mysqld]
    server-id=1
    max_connections=3000
    basedir = /data1/hadoop/mysql
    datadir = /data1/hadoop/mysql/data
    port = 3306
    secure_file_priv=/data1/hadoop/mysql/data
    query_cache_type=1
    query_cache_size=120M
    query_cache_min_res_unit=4096
    character_set_server=utf8
    #sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
    general_log=ON
    slow_query_log=1
    long_query_time=2
    log-error=/data1/hadoop/mysql/logs/mysql.err
    log_bin=/data1/hadoop/mysql/logs/mysql-bin
    slow-query-log-file=/data1/hadoop/mysql/logs/slowquery.log
    socket = /data1/hadoop/mysql/mysql.sock
    symbolic-links=0
    pid-file=/data1/hadoop/mysql/mysql.pid
    [client]
    socket=/data1/hadoop/mysql/mysql.sock
    default-character-set=utf8
    [mysql]
    default-character-set=utf8

    7、创建数据目录,日志目录等并授权

    # cd /data/mysql/mysql-5.7.24
    # mkdir data
    # touch {mysql.sock,mysql.err-log,mysql.pid}
    # chmod 755 data/ mysql.err-log mysql.pid mysql.sock
    # chown -R mysql:mysql /data/mysql/mysql-5.7.24

    8、数据库初始化

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

    centos版本 初始化的时候将会报如下错误:
    ./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
    解决:
    1、yum install libaio -y
    2、下载rpm包
    rpm包地址:

    链接:https://pan.baidu.com/s/1Pgr58ldD246Cnfz8NZKpzA
    提取码:2rta

    注:localhost:后面生成的是数据库的密码,请保存下来。

    9、后台启动

    # ./mysqld_safe --user=mysql &

    10、查看进程,以确定是否启动成功

    # ps -ef |grep mysql

     11、测试连接

    # ./mysql -uroot -p
    Enter password: # 刚刚生成的那个随机密码
    在这里出错了,报错如下:
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 提示找不到sock文件,在这里的话就去/etc/my.cnf文件里面把socket这一行改成/tmp/mysql.sock吧,如下:
    socket=/tmp/mysql.sock
    然后重新启动mysql,就可以正常进入到数据库了。

    12、修改环境变量

    每次进入数据库都要去bin目录执行对应的脚本,所以,这里设置环境变量更方便一点

    # vim ~/.bashrc
    文件最后添加如下两行:

    export MYSQL_HOME=/data/mysql/mysql-5.7.24/
    export PATH=$PATH:${MYSQL_HOME}/bin

    # source ~/.bashrc

    13、配置mysql的启动

    # cp /data/mysql/mysql-5.7.24/support-files/mysql.server /etc/init.d/mysql
    # vim /etc/init.d/mysql
    修改如下两行的值,这两行默认为空。

    以后就可以通过/etc/init.d/mysql start方式启动数据库了

    好了,基本安装就算完成了。

    二、数据库修改密码和授权

    修改数据库密码,刚刚生成的密码不太好记,所以我们这里修改一个自己熟悉的比较好记的密码,我这里测试,密码就设置的比较简单,生成环境建议设置的复杂一些;

    第一种修改root密码的方式:(用mysqladmin命令行工具)

    # mysqladmin -uroot -p '旧密码' password '新密码'
    例:mysqladmin -uroot -p 'Pnh=?_Edg2+V' password '123456'

    第二种方式:(登录数据库,用set password方式)

    mysql> set password for 用户名@localhost = password('新密码');
    例:mysql> set password for root@localhost = password('123');

     第三种方式:(用update直接修改user表)

    mysql>use mysql;
    mysql>update user set password=password('1234') where user='root' and host='localhost';
    mysql>flush privileges;

    第四种方法:如果刚刚生成的随机密码忘记了怎么办?

    解决:

    # mysqld --skip-grant-tables #启动mysql服务的时候跳过权限表认证。注:这个窗口不会关闭,需要重新开启另外一个端口进行操作,执行这个命令的时候我这里报错了,如下:
    [ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
    解决:打开/etc/my.cnf,在mysqld下面添加user=mysql就ok
    在另外一个端口执行mysql进入数据库控制台
    # mysql
    mysql>use mysql
    mysql>update user set password=password("123456789") where user="root";

    mysql>flush privileged

    2、远程授权

    进入数据库
    # mysql -u root -p
    mysql>grant all privileges on *.* to 'root'@'%' identified by '123' with grant option;
    mysql>flush privileges;
  • 相关阅读:
    反射:框架设计的灵魂
    Junit测试
    XML笔记
    map 的用法
    opencv总结1
    光源
    镜面反射
    openGL纹理对象
    GPU入门
    动态规划1
  • 原文地址:https://www.cnblogs.com/yjt1993/p/10174107.html
Copyright © 2011-2022 走看看