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'@'%';

  • 相关阅读:
    .NET实现Excel文件的读写 未测试
    权限管理设计
    struts1中配置应用
    POJ 2139 Six Degrees of Cowvin Bacon(floyd)
    POJ 1751 Highways
    POJ 1698 Alice's Chance
    POJ 1018 Communication System
    POJ 1050 To the Max
    POJ 1002 4873279
    POJ 3084 Panic Room
  • 原文地址:https://www.cnblogs.com/haima/p/12276063.html
Copyright © 2011-2022 走看看