zoukankan      html  css  js  c++  java
  • Mysql5.7 Linux编译安装教程

    1.系统约定

    安装文件下载目录:/data/software
    Mysql目录安装位置:/usr/local/mysql
    数据库保存位置:/usr/local/mysql/data
    日志保存位置:/tmp/mysql_error.log

    2.下载mysql(这里下载的是預编译好的二进程mysql安装包)

    在官网:https://dev.mysql.com/downloads/mysql/ 中,选择以下版本的mysql下载:


    根据自己系统的版本选择32或者64位,这里我选择64位系统的

    建议:在windows上使用迅雷下载,速度很快,然后用工具(Xftp)上传到 /usr/local/src目录下;

    或者直接下载到服务器上
    复制下载地址wget+地址 (默认下载到当前目录,自己找个目录存)

    cd /usr/local/src
    wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
    

    3.下载完成,解压出来

    tar zxvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

    4.移到解压好的文件夹到/usr/local/mysql

    mv mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql
    cd /usr/local/mysql
    mkdir data  //新建文件夹data
    mkdir mysql-files
    groupadd mysql //新建mysql组
    useradd -g mysql mysql
    chown -R mysql:mysql /usr/local/mysql //修改MySQL安装目录和data数据中心的权限:
    cat /etc/passwd //查看用户和分组信息:查看用户列表
    cat /etc/group //查看用户组列表
    chown -R mysql . //改变目录属有者 要在/usr/local/mysql目录下
    chgrp -R mysql .
    

    5.修改mysql配置文件

    vim /etc/my.cnf

    [mysql]
    default-character-set=utf8
    socket=/var/lib/mysql/mysql.sock
    [mysqld]
    port = 3306
    socket=/var/lib/mysql/mysql.sock
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data
    max_connections=200
    character-set-server=utf8
    default-storage-engine=INNODB
    #lower_case_table_name=1
    max_allowed_packet=16M
    log_error=/tmp/mysql_error.log
    sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    

    mkdir /var/lib/mysql
    chmod 777 /var/lib/mysql

    6.配置参数,获取密码的命令:

    执行初化数据库命令:

    bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

    如果报错缺少插件,去百度libnuma.so.1搜一下,发现缺少 numactl ,去下载安装上 yum -y install numactl 再执行上面的初化数据库命令

    启动成功后,看一下data文件目录里已经有数据了
    ll data

    此处需要注意记录生成的临时密码,如上文结尾处的

    如果没有显示密码,就使用下面的命令查看密码:

    cat /tmp/mysql_error.log

    bin/mysql_ssl_rsa_setup --datadir=/usr/local/data/mysql //设置ssl可以不用执行

    7.启动MySQL服务器mysqld

    root@haima-PC:~# /usr/local/mysql/support-files/mysql.server start
    Starting MySQL
    .Logging to '/tmp/mysql_error.log'.
    . ok
    

    以上启动成功了.

    安装时可能出现的三种报错:

    a.mysql服务已经启动了,再次启动会报错.

    如果像上图一下报错,就执行下面的操作,杀死进程,再执行,重启

    ps -aux|grep mysql
    kill -9 1512
    /usr/local/mysql/support-files start`
    

    b.如果还是不行,一直启动不了,就把data文件夹删除了,再重新建一下,

            cd /usr/local/mysql
            rm -rf /data
         mkdir data //新建的data文件夹改权限改为group	
    	chown -R mysql:mysql /usr/local/mysql/data  //改权限命令	
    	bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //再初始化一下
            cat /tmp/mysql_error.log	//查看一下密码
    	./support-files/mysql.server start //再启动,就ok了	
    

    c.如果还是不可以,就把 安装的/usr/local/mysql文件夹删除了,到/user/local/src里把mysql文件再解压出来再复制到/usr/local文件夹下,

      把/etc/my.cnf删除了,再重新建一下,
      查一下如果有进程,杀死mysql进程,   
     重复  上面b的方法  
    

    9.设置好环境变量后,重新加载一下就可以生效了

    编辑profile文件
    vim /etc/profile

    export PATH=$PATH:/usr/local/mysql/bin
    

    或者

    echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
    /usr/local/mysql/support-files //如果是ubuntu加入这一句
    source /etc/profile //刷新生效
    

    连接数据库

    mysql -uroot -p密码 //连接一下mysql
    如果提示下面的错误:就用navicat连联连,再修改密码
    Your password has expired. To log in you must change it using a client that supports expired passwords.其实只需要修改密码就可以了

    
    alter user 'root'@'localhost' identified by 'whm2416@qq.com'; //修改账号密码
    
    use mysql
    create user 用户名@'%' identified by '密码'; //创建账号 haiama用户名字
    grant all privileges on *.* to 用户名@'%' with grant option; //授权
    FLUSH PRIVILEGES; //刷新
    select version(); //查看版本
    
    quit / exit //退出
    

    设置开机启动:

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    chkconfig --add mysqld 
    chkconfig mysql on
    

    启动
    service mysql start //centos
    mysql.server start //ubuntu

    重启:
    service mysql restart //centos
    mysql.server restart //ubuntu

    停止:
    service mysql stop //centos
    mysql.server stop //ubuntu

    看启动日志:
    cat mysql_error.log

    查看mysql状态:
    service mysql status

    停止mysql服务
    service mysql stop

    或者杀进程:
    killall -9 mysql

    如果没有安装killall可以使用yum安装
    yum provides killall
    查出来psmisc-22.20-11.el7.x86_64
    yum -y install psmisc-22.20-11.el7.x86_64
    killall -9 mysql

    忘记密码,初使化密码(需要提前备份数据,重置后,数据就都没有了)

    killall -9 mysql //停止mysql软件
    pkill -9 mysql //同上面的命令停止mysql软件
    rm -rf /usr/local/mysql/data //删除data目录
    mkdir data //新建data文件夹
    chown -R mysql.mysql /usr/local/mysql //添加权限
    bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  //初使化密码,保存一下密码
    cat /tmp/mysql_error.log //查看密码
    mysql_ssl_rsa_setup //设置ssl
    service mysql start //启动
    mysql -uroot -p密码  //登陆
    alter user 'root'@'localhost' identified by 'whm****@**.com'; //修改账号密码 更改root密码,需要带数字,大写字母,小写字母,特殊符号
    flush privileges;
    

    1、修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1
    这一行配置让 mysqld 启动时不对密码进行验证

    vim /etc/my.conf
    加一行:skip-grant-tables=1

    2、重启 mysqld 服务:
    /usr/local/mysql/support-files/mysql.server restart

    3、使用 root 用户登录到 mysql
    mysql -u root

    alter user 'root'@'localhost' identified by 'whm****@***.com'; //修改账号密码
    FLUSH PRIVILEGES; //刷新
    quit
    

    注意:若远程工具连接不上,请用 iptables -F 命令来清除防火墙规则

    MySql拓展

    更改root密码,需要带数字,大写字母,小写字母,特殊符号

    例:你的新密码为1qaz2wsx@!XLD

    # SET PASSWORD = PASSWORD('你的新密码');
    # 上面的方式不行就用下面这个
    ALTER USER USER() IDENTIFIED BY '你的新密码';
    # 设置密码永不过期
    ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
    # 刷新MySQL的系统权限相关表
    flush privileges;
    

    根据个人需求,设置数据库用户在所有ip下以及在本地可访问,以下用root用户做演示

    grant all privileges on *.* to root@"%" identified by "你的密码" with grant option; //给把所有的ip地址开权限
    grant all privileges on *.* to root@"localhost" identified by "你的密码" with grant option;
    grant all privileges on *.* to 'root'@'113.46.90.222' identified by '12345' with grant option;  //给指的ip地址开权限
    grant all privileges on *.* to 'root'@'113.46.*.*' identified by '12345' with grant option;  //给指的ip段开权限
    flush privileges;
    

    注意:若远程工具连接不上,请用 iptables -F 命令来清除防火墙规则

    新建用户

    CREATE USER 'xld_test'@'%' IDENTIFIED BY '你的密码';

    用户授权

    添加用户权限: GRANT ALL ON databasename.tablename TO 'xld_test'@'%';
    撤销用户权限: REVOKE ALL ON databasename.tablename TO 'xld_test'@'%';
    删除用户及权限 :drop user 'xld_test'@'%';

  • 相关阅读:
    java多线程详解(7)-线程池的使用
    mysql学习(4)-mysqldump备份和恢复数据
    mysql学习(3)-linux下mysql主从复制
    java多线程详解(5)-Threadlocal用法
    java多线程详解(4)-多线程同步技术与lock
    java多线程详解(3)-线程的互斥与同步
    iava多线程详解(2)-成员变量与局部变量访问
    java多线程详解(1)-多线程入门
    redis 的消息发布订阅
    redis 数据类型
  • 原文地址:https://www.cnblogs.com/haima/p/12276063.html
Copyright © 2011-2022 走看看