Linux安装MySQL

记录下安装过程而已

一、概述

有很多种情况和方法,需要具体问题具体分析,那如何分析呢?

很简单啊,官网文档上有各种情况下(不同OS、不同安装方式等等)的安装介绍。(5.6地址

二、步骤

环境说明:

安装路径:

  • /apps/mysql

具体步骤:

  1. 第一步,先检查是否已经安装过了,如果安装过了就要删除掉,可以使用yum list installed来看有没有yum安装过MySQL,如果是不是yum安装,那可以按照文件名全局find搜索试试。

    • 注意,mariadb(MySQL的纯开源版)也不能有,要删除;

      例如,阿里云上新建的CentOS7.0默认就有
      这里写图片描述
      使用yum remove mariadb-libs.x86_64删除之。

    • 有可能还遗留有配置文件等也删除了,比如/etc/my.cnf或者/etc/mysql等。

  2. 接下来,因为MySQL依赖libaio库,所以这个也必须有,也是跟1一样看装过没,如果没有就yum install libaio安装。

  3. 创建一个专门管理数据库的Linux用户组和一个用户:

    
    # 创建组,名字叫mysql吧
    
    [root@i123321Z local]# groupadd mysql 
    
    # 创建用户,名叫mysql,这个用户没有自己的目录,登录后不能执行shell命令。useradd 是添加用户到/etc/passwd中;-r是系统账号;-g 指定组;-s /bin/false 指定登录后使用的shell为这个(通常是/bin/bash),所以不能执行shell命令;
    
    [root@i123321Z local]# useradd -r -g mysql -s /bin/false mysql
  4. 解压:首先将tar包解压在/apps下,然后将那么长的文件名替换为mysql

    [root@i123321Z local]# tar -zxf mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz -C /apps
    [root@i123321Z local]# cd /apps
    [root@i123321Z apps]# mv mysql-5.6.32-linux-glibc2.5-x86_64 mysql 
    
  5. 配置文件

    1. MySQL安装/启动时从哪里获取配置信息?

      先说下启动方式,基本上我们需要两种,一是用户手动启动的;二是Linux开机启动的;
      无论哪种启动,启动脚本/可执行文件都需要你告诉它配置信息,有两种方式:

      • 命令行参数:长期使用的设置选项尽量不用命令行,因为命令行存在不确定,漏掉参数等问题;

      • 配置文件:通常,这是我们最常用的方式;

    2. 系统如何知道配置文件的位置:
      UNIX 系统中,我已知的寻找优先级从先到后如下:

      1. 使用安装、启动等命令时可以加上--defaults-file参数指定配置文件位置;
      2. 默认寻找的位置:
        • CentOS在/etc/my.cnf
        • Debian、Ubuntu在/etc/mysql/my.cnf
      3. 安装过后会自动在安装目录生成mysql安装目录/my.cnf,之后启动之类命令也会来这里读;

    我们这样做,去/apps/mysql/support-files/my-default.cnf拷贝一份放在系统需要的目录并重命名,我这里是/etc/my.cnf,修改如下选项:

     [mysqld]
     #安装目录
     basedir = /apps/mysql
     #数据目录:这里看大家自己的需要了
     datadir = /data/mysql
    
     # 下面是一些可选项
    
     # 支持emoji,server编码为utf8mb4
     # 这里设置之后,新建database、table也会将其作为默认
     character_set_server = utf8mb4
    
     # result set和error message返回给客户端时编码
     # character_set_results = utf8mb4
    
     # character_set_database和collation_database不要设置,创建database时手动指定最好
     # character_set_database=
     # collation_database=
  6. 安装

    [root@i123321Z apps]# cd mysql
    
    ##因为想要让用户mysql来安装MySQL,所以改变mysql目录的所有者、所属组
    
    [root@i123321Z mysql]# chown -R mysql .
    [root@i123321Z mysql]# chgrp -R mysql .
    
    ##安装强调内容:必须在scripts上层目录安装!!!(如果有报错,看博客最下边TIPS)
    
    [root@i123321Z mysql]# scripts/mysql_install_db --user=mysql
    
    
    ##安装完后,再让当前目录(.即mysql目录)属于root,然后只让数据目录属于用户mysql
    
    [root@i123321Z mysql]# chown -R root .
    [root@i123321Z mysql]# chown -R mysql /data/mysql
    
  7. 启动

    
    #不要使用mysqld而使用mysqld_safe来启动(启动报错,看博客最后的TIPS)
    
    [root@i123321Z mysql]# bin/mysqld_safe --user=mysql &
    

    以上,已经安装和启动好了MySQL5.6,但是还有一些可选项,也很重要;

  8. 重要可选项

    
    #1. 随机启动:::将mysql的启动shell文件放在OS启动目录,并加入chkconfig配置启动(脚本中默认2345级别)
    
    [root@i123321Z mysql]# cp support-files/mysql.server /etc/init.d/mysql.server
    [root@i123321Z mysql]# chkconfig --add mysql.server
    
    
    #2. 设置root用户的密码
    
    [root@i123321Z mysql]# bin/mysqladmin -u root password '你的密码'
    
    
    #3. 将`mysql可执行文件`做一份软链接放入/usr/bin/,以使我们可以在任意位置使用mysql来连接mysql服务器
    
    [root@i123321Z bin]# ln -s /apps/mysql/bin/mysql /usr/bin/mysql
    
    
    #另外,如果在生产环境安装MySQL,可以使用mysql_secure_installation来安装,可以让你使用很多初始化参数、不创建测试database等
    
    [root@i123321Z mysql]# bin/mysql_secure_installation
    

TIPS

  1. 创建一个MySQL用户,用来远程连接,并授权某个数据库的完整权限(权限列表)给他:

    -- %代表任意主机
    mysql> Create user '用户名'@'%' identified by '密码';
    
    mysql> grant all privileges on testdb.* to '用户名'@'%';
    

    解释下授权语句格式:

    -- 大写的固定的,小写的是要自定义的
        -- privileges:权限,有很多,必须SELECT、UPDATE等,全部权限用 ALL PRIVILEGES 表示;
        -- databasename.tablename:就是指定什么库、什么表了。全部表和库用 *.*表示;
        -- 如果想让被授权者还能给其它用户授权的话,可以在最后加上 WITH GRANT OPTION;
    
    GRANT privileges ON databasename.tablename TO 'username'@'host';

    MySQL是以Host + User来确定用户的,可以从mysql.user表的创建语句证明:... PRIMARY KEY (Host,User) ...,所以,下面两个语句是两个账户:

    grant all privileges on *.* to 'root'@'192.168.1.1' identified by 'test';
    grant all privileges on *.* to 'root'@'192.168.1.2' identified by 'test';
  2. 安装时报错:

    1. FATAL ERROR: please install the following Perl modules before executing scripts/mysql_install_db:Data::Dumper,说明缺少perl模块。

      解决方案:

      
      #安装 perl-module
      
      yum install -y perl-Module-Install.noarch
  3. 启动时报错:

    1. touch: cannot touch ‘/var/log/mariadb/mariadb.log’: No such file or directory,出现类似这些语句是说明你的Linux上有mariadb相关软件。

      解决方案:
      删除mariadb相关软件,用yum删或者找到文件删。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值