zoukankan      html  css  js  c++  java
  • linux系统安装mysql

    操作系统:CentOS Linux release 7.5

    安装软件:mysql5.7

    说明:使用官方编译好的二进制文件进行安装

    1.检查操作系统是否自带mysql

         [root@localhost local]# rpm -qa|grep mysql

         如果没有看第二步。

    1. 如果有..............
    1. 使用yum命令,因为yum命令可以自动删除与mysql相关的依赖;如果使用rpm命令,则还需要手动去删除和mysql相关的文件
      1. [root@localhost local]# yum -y remove mysql-libs-xxxxx

        检查删除是否成功。如果没有提示则删除成功。

        [root@localhost local]# rpm -qa|grep mysql

    2.下载mysql5.7

         mysql官网 https://dev.mysql.com/downloads/mysql/5.7.html#downloads

        将下载的安装包"mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz"利用xftp上传至/usr/local下或者使用命令scp -r  上传到服务器/usr/local
        解压
        [root@localhost local]# tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz

       修改文件名

      [root@localhost local]# mv mysql-5.7.21-linux-glibc2.12-x86_64/ mysql57

        进入/mysql57创建data文件夹

    1. [root@localhost local]# cd mysql57/
            [root@localhost mysql57]# mkdir data
     
     
     
     
     

     

    5.配置mysql

    创建以下文件,设置访问权限,用于mysql配置中

    第一步:创建文件/tmp/mysql.sock。并设置权限

    创建文件

        [root@localhost mysql57]# mkdir tmp
        [root@localhost mysql57]# cd tmp
        [root@localhost tmp]# ll
        total 0
        [root@localhost tmp]# touch mysql.sock
        [root@localhost tmp]# ll
        total 0
        -rw-r--r-- 1 root root 0 Aug 11 21:59 mysql.sock

    设置权限

        [root@localhost tmp]# chown -R mysql:mysql /usr/local/mysql57/tmp/mysql.sock
        [root@localhost tmp]# chmod 755 /usr/local/mysql57/tmp/mysql.sock

    第二步:创建/log/mysqld.log。并设置权限

        [root@localhost mysql57]# mkdir log
        [root@localhost mysql57]# cd log
        [root@localhost log]# ll
        total 0
        [root@localhost log]# touch mysqld.log
        [root@localhost log]# chown -R mysql:mysql /usr/local/mysql57/log/mysqld.log
        [root@localhost log]# chmod 755 /usr/local/mysql57/log/mysqld.log

    如果出错,说明路径没有写全,要写绝对路径

    第三步:创建/tmp/mysqld.pid。并设置权限

        [root@localhost log]# cd ../tmp
        [root@localhost tmp]# touch mysqld.pid
        [root@localhost tmp]# chown -R mysql:mysql /usr/local/mysql57/tmp/mysqld.pid
        [root@localhost tmp]# chmod 755 /usr/local/mysql57/tmp/mysqld.pid  

    6.初始化mysql

    [root@localhost mysql57]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql57/ --datadir=/usr/local/mysql57/data/

    可能会报错。报错信息
    bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

    解决方法:
    原因:
    yum安装的是libnuma.so.1,但安装时默认安装的是32的,而db2需要的是64位的
    1.如果已经安装了libnuma.so.1,先yum remove libnuma.so.1
    [root@localhost mysql57]# yum remove libnuma.so.1

     2.安装依赖包 yum -y install numactl.x86_64
    [root@localhost mysql57]# yum -y install numactl.x86_64

    安装完成后重新,执行
    [root@localhost mysql57]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql57/ --datadir=/usr/local/mysql57/data/

    安装成功

    配置SSL参数(在mysql目录下)

    [root@localhost mysql57]# bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql57/data/

    由于mysql-5.7.23版本my.cnf不在/support-files下,故我们创建my.cnf文件。

    1. [root@localhost mysql57]# touch /etc/my.cnf
    2. [root@localhost mysql57]# vim /etc/my.cnf
    复制如下内容(每个人安装路径可能不一样,需要修改):

        [mysqld]
        character_set_server=utf8
        init_connect='SET NAMES utf8'
        basedir=/usr/local/mysql57
        datadir=/usr/local/mysql57/data
        port = 3306
        socket=/tmp/mysql.sock
        log-error=/usr/local/mysql57/log/mysqld.log
        pid-file=/usr/local/mysql57/tmp/mysqld.pid
        #表名不区分大小写
        lower_case_table_names = 1
        max_connections=5000
        sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

    配置完成

     7.启动mysql

    配置mysql自动启动(可根据需要配置)

        [root@localhost mysql57]# cp support-files/mysql.server /etc/init.d/mysql
        [root@localhost mysql57]# vim /etc/init.d/mysql

    添加配置(i 进入编辑;esc--> :wq保存退出)

     若配置了mysql自启动方式则可以使用服务方式启动mysql

        #查看mysql状态
        /etc/init.d/mysql status 或者 service mysql status
        #启动mysql
        /etc/init.d/mysql start 或者 service mysql start
        #停止mysql
        /etc/init.d/mysql stop 或者 service mysql stop
        #重新启动mysql
        /etc/init.d/mysql restart 或者 service mysql restart
        查看mysql服务说明启动成功
        ps -ef|grep mysql

     启动mysql

        [root@localhost tmp]# service mysql start
        Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql57/tmp/mysqld.pid).
    报错了,上面说没有/usr/local/mysql57/tmp/mysqld.pid。

    解决方案:

    a)创建文件/usr/local/mysql57/tmp/mysqld.pid
    b)修改权限
    修改存放mysqld.pid文件目录的权限
        chown -R mysql /usr/local/mysql57/tmp
        chgrp -R mysql /usr/local/mysql57/tmp
        chmod 777 /usr/local/mysql57/tmp

    重新启动成功(如果还不行,就是中间某个步骤写错了。或者直接把mysql目录权限赋为777

    8.配置mysql到环境变量

    [root@localhost tmp]# vim /etc/profile
    1. export MYSQL57_HOME=/usr/local/mysql57/bin #mysql5.7/bin路径
    2. export PATH=$PATH:${MYSQ57_HOME}
     

    这个地方是冒号 ( :)

    设置环境变量立即生效

    [root@localhost tmp]# source /etc/profile

    方法一:修改mysql密码 (安装完后无论什么操作都提示错误)
    原因是:我们的初始密码时间过期了,重新改一下密码就行

    登录mysql :mysql -uroot -p
    然后执行sql语句修改密码:alter user user() identified by "你的新密码";
    方法二:

        update mysql.user set authentication_string=password('123456') where User="root" and Host="localhost";

         flush privileges;  #刷新系统授权表

    【备注:查了一下资料,发现MySQL5.7以后,password字段不再存在,变成了authentication_string】
     
    
    

    +++++++++++++++++++++++++忘记密码后重置密码++++++++++++++++++

    重置密码解决MySQL for Linux错误 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
    一般这个错误是由密码错误引起,解决的办法自然就是重置密码。

    假设我们使用的是root账户。

    1.重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:

    vim /etc/my.cnf(注:windows下修改的是my.ini)

    在文档内搜索mysqld定位到[mysqld]文本段:
    /mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)

    在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示:

    保存文档并退出:

    :wq

    2.接下来我们需要重启MySQL:

    /etc/init.d/mysql restart(有些用户可能需要使用/etc/init.d/mysqld restart)
    注意:我用的是service mysqld restart

    3.重启之后输入#mysql即可进入mysql。

    4.接下来就是用sql来修改root的密码

    mysql> use mysql;
    mysql> update user set password=password("你的新密码") where user="root";
    设置密码我没成功 报错
    mysql> update user set password=password("123456") where user="root";
    ERROR 1054 (42S22): Unknown column 'password' in 'field list'

    原因:
    5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
    所以使用下面一句话
    mysql> update mysql.user set authentication_string=password('*******') where user='*******'; #修改密码成功
    mysql> flush privileges;
    mysql> quit

    到这里root账户就已经重置成新的密码了。

    5.编辑my.cnf,去掉刚才添加的内容,然后重启MySQL。大功告成!

    网上有很多关于这个问题的解决说明,很多刚接触的朋友可能比较迷惑的是在自己的平台上找不到my.cnf或者my.ini文件,如果你是Linux,使用如下方式可以搜索到:

    至于windows平台,去安装目录下找一下my.ini吧。


    原文链接:https://blog.csdn.net/pdsu161530247/article/details/81585889

                   :https://www.cnblogs.com/wenqiangit/p/9767294.html

     
     
     
  • 相关阅读:
    uva11021
    WC2019退役失败记
    北大集训2018垫底记
    NOI后训练记录
    NOI2018垫底记
    NOI前训练记录
    JSOI2018R2游(afo)记
    HNOI(AHOI)2018游记
    JSOI2018R1(九省联考)游(afo)记
    LR 8 Hello 戊戌
  • 原文地址:https://www.cnblogs.com/lyongyong/p/12101876.html
Copyright © 2011-2022 走看看