zoukankan      html  css  js  c++  java
  • Linux系统指定目录下安装配置Mysql 5.7.15步骤图文详解

    参考:

    一、主要安装

    https://blog.csdn.net/a_bang/article/details/52465110

    二、linux下mysql默认安装目录和常用命令      

    https://blog.csdn.net/qq_41076797/article/details/90573047

    三、mysql的卸载方式

    https://www.cnblogs.com/taomylife/p/7234925.html

    四、现在版本已经没有my_default.cnf文件,
    (https://blog.csdn.net/djcode/article/details/78621772)

    五、  mysql报错:

    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'
    处理方法:https://www.jb51.net/article/174244.htm

    *******************************************************************************

    mysql安装有两种:源码自编译安装和编译过的二进制文件进行安装。后一种方法相比源码安装,节省了半个小时的编译时间,只需要合理配置即可。至于其他的优劣,欢迎大家讨论。网上有很多教程,但是对于想要把mysql安装到指定路径的博文却很少,而且还有很多漏洞。为了以后安装方便,抽了点时间整理了一下,既方便大家,也方便自己。本文使用mysql最新版本5.7.15作为研究对象,如有问题,欢迎指正。可以先看一遍博文,第二遍直接按文中代码,五分钟就可以搞定,当然前提是要先准备好工具材料。

    环境:centos 6.5、mysql 5.7.15 64位
    (mysql下载地址:http://dev.mysql.com/downloads/mysql/)

    1、下载安装包 :
    进去mysql官网,下载需要的版本,如下图
    这里写图片描述

    这里写图片描述

    2、下载之后,上传到服务器上要安装的目录中,或者是使用wget,但是由于文件过大(600M),所以我采用本地下载再上传。然后解压压缩文件,解压过程有点耗时,耐心等待。然后重命名为mysql,并且在mysql下面新建目录data,作为mysql的数据存储目录。本次安装,我在usr下新建了mylocal文件夹。

    [root@ZhOu mylocal]# tar -xf mysql-5.7.15-linux-glibc2.5-x86_64.tar
    [root@ZhOu mylocal]# tar -zxf mysql-5.7.15-linux-glibc2.5-x86_64.tar.gz
    [root@ZhOu mylocal]# mv mysql-5.7.15-linux-glibc2.5-x86_64 mysql
    [root@ZhOu mylocal]# cd mysql
    [root@ZhOu mysql]# mkdir data

        1
        2
        3
        4
        5

    这里写图片描述

    3、创建mysql用户组,创建之后,可以查看是否创建成功

    [root@ZhOu /]# groupadd mysql
    [root@ZhOu /]# useradd -r -g mysql mysql
    [root@ZhOu /]# cat /etc/group | grep mysql

        1
        2
        3

    这里写图片描述

    4、赋权,更改所属的组和用户:

     [root@ZhOu mylocal]# chown -R mysql.mysql /usr/mylocal/mysql
     [root@ZhOu mylocal]# chown -R mysql.mysql /usr/mylocal/mysql/data
     [root@ZhOu mylocal]# chgrp -R mysql /usr/mylocal/mysql

        1
        2
        3

    5、进入mysql文件夹,复制support-files文件下的my-default.cnf和mysql.server,如下:

    [root@ZhOu mysql]# cp support-files/my-default.cnf /etc/my.cnf
    [root@ZhOu mysql]# cp support-files/mysql.server /etc/init.d/mysqld

        1
        2

    这里写图片描述

    6、编辑mysqld,修改为指定路径:

    [root@ZhOu mysql]# vi /etc/init.d/mysqld

        1

    这里写图片描述

    7、把mysql路径添加到环境变量中,方便操作命令:

    [root@ZhOu mysql]# vi /etc/profile

        1

    文件末尾添加export MYSQL=/usr/mylocal/mysql,path中加入$MYSQL/bin: 。

    这里写图片描述

    8、使修改后的profile文件生效:

    [root@ZhOu mysql]# source /etc/profile

        1

    9、执行数据库初始化操作,执行文件为mysql下bin文件夹中mysql_install_db,basedir为安装目录,datadir为数据文件目录。注:mysql_install_db在5.6版本中位于scripts文件夹,5.7已经取消该文件夹,合并到bin下。

    [root@ZhOu bin]# ./mysql_install_db --basedir=/usr/mylocal/mysql  --user=mysql --datadir=/usr/mylocal/mysql/data

        1
        2

    这里写图片描述

    10、完成之后,启动mysql服务:

    [root@ZhOu bin]# service mysqld start

        1

    这里写图片描述

    此时已经可以启动服务,但整个工程只算完成了一半。
    注意:新版的可能会报错,因为mysqld_safe的原因,旧版本安装的时候没有报错,只需要把mysqld_safe中的默认路径修改为自己的目标路径,再执行就可以了。

    这里写图片描述

    11、修改密码:首先关闭服务,把mysql/bin/mysqld_safe中usr/local/mysql换成指定安装的路径名,然后执行下面代码。

    [root@ZhOu bin]# service mysqld stop
    [root@ZhOu bin]# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

        1
        2
        3

    这里写图片描述

    此时已经进入免过滤状态,开始修改root密码。注:5.6版本user表中密码字段是password,5.7之后改为authentication_string,不再有password。

    [root@ZhOu bin]# mysql
    mysql> use mysql;
    mysql> update user set authentication_string=PASSWORD('root') where user='root';
    mysql> flush privileges;
    mysql> exit;

        1
        2
        3
        4
        5

    这里写图片描述

    12、此时,密码已经修改完成。退出重新登录,本以为搞定了,但是创建数据库,却报错了,错误是:ERROR 1820 (HY000): You must reset your password using ALTER USER statement。原来第一登录,还要再次设置密码,无语!修改之后,创建成功。

    mysql> alter user 'root'@'localhost' identified by 'root';
    mysql> flush privileges;
    mysql> exit;

        1
        2
        3

    这里写图片描述
    使用 SET PASSWORD = PASSWORD(‘root’)来修改密码也是可以的。

    13、工程完成一大半了,此时如果远程连接登录,会报错误的。如下:
    这里写图片描述
    下面修改远程连接权限,很简单,只需要修改user表中root用户的host就可以了。改完之后,记得重启一下服务,再次远程连接,搞定!

    mysql> use mysql;
    mysql> select user,host from user;
    mysql> update user set host='%' where user='root';

        1
        2
        3

    这里写图片描述
    这里写图片描述
    这里写图片描述

    14、设置mysql开机自启动:

    [root@ZhOu ~]# chkconfig mysqld on

        1

    15、测试了一下功能,都没什么问题。使用mysqldump的时候,却有点小意外。

    [root@ZhOu /]# mysqldump -uroot -proot mysql > mysql.dump
    mysqldump: [Warning] Using a password on the command line interface can be insecure.

        1
        2

    找了一下原因,设置一下etc/my.cnf即可。如下:

    [root@ZhOu /]# vi etc/my.cnf

        1
        2

    这里写图片描述

    保存之后,运行如下代码,一切OK!

    [root@ZhOu /]# mysqldump  mysql > mysql.dump

        1

    这里写图片描述

    16、设置编码:
    由于是免安装,字符集是默认的latin1,所以就需要动手设置一下了。首先看下一编码:

    mysql> show variables like '%character%'

        1

    就可以看到当前系统的编码。然后手工设置一下就行了,打开etc/my.cnf,在[mysqld]下面添加以下两行代码就行了。

    character_set_server = utf8
    collation_server = utf8_general_ci

        1
        2

    这里写图片描述

    17、到此,mysql已经安装结束了。如果有什么错误的地方,欢迎批评指正。同时希望大家能够多提意见加入其中,使其更快更完善。
    ————————————————

  • 相关阅读:
    web端
    vue 键盘事件keyup/keydoen
    APiCloud
    APiCloud
    对于HTML和XML的理解
    JS 的三种定义变量 var let const
    jQuery
    NodeJS 阻塞/非阻塞
    NodeJs REPL交互式解析器常用命令
    用NodeJS创建一个聊天服务器
  • 原文地址:https://www.cnblogs.com/yaok430/p/11970267.html
Copyright © 2011-2022 走看看