Linux安装MySQL教程(一)

mysql数据库的安装一般就三种环境,Windows、Mac、Linux,在这里Windows和Mac就不多说了,直接下载安装包,双击打开安装基本很简单;在这里主要说一下关于mysql在Linux环境下的安装

主要介绍这么几点内容:

  1. 基本的安装步骤
  2. 安装过程中的注意事项
  3. 推荐安装位置
  4. 用户及操作权限设置

下载mysql
在官网:http://dev.mysql.com/downloads/mysql/ 中,根据自己的需要选择合适版本的mysql下载:

在这里说一下安装路径问题:

  一般情况下将安装包下载到一个临时目录下,解压安装包至/usr/local/mysql,没有mysql的话就创建一个即可;其他基本默认即可,但这里仅建议自己装着玩的用户这么操作

  推荐目录(非练习系统,数据量大):

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

  说明一下:/usr为系统盘,也就是说和Linux系统一个磁盘上;/data为运维同事给分配的专门数据盘,和系统分开的专门存储数据的一个磁盘;

      mysql应用可以直接安装在系统盘上,所需空间有限,不会越来越大;/data目录采用专门磁盘,用于存储专门的数据库数据、日志等信息,因为他会随着业务的发展越来越大,在单独的盘上存储,更方便扩容,又可以避免存在在系统盘上因为数据的增多导致系统盘空间满,影响系统的启动和运行;下面我们就按照以上推荐目录进行操作安装:

  mkdir命令创建好所需目录,这里就不多做赘述,不会的自行百度

将下载好的安装文件放到服务器上,解压安装包

  执行如下命名:
    #mkdir /data/software
    #cd /data/software

  --下载安装包 

  --建议:在windows上使用迅雷下载,速度很快(我的是1M/s),然后用工具(Xftp)上传到 /data/software目录下;
  #wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz

解压压缩包到目标位置

  #cd /data/software

  --解压压缩包

  #xz -d mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz

  注:这里是.tar.xz而不是.tar.gz;解压tar.xz文件:先 xz -d xxx.tar.xz 将 xxx.tar.xz解压成 xxx.tar 然后,再用 tar xvf xxx.tar来解包。

  #tar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar

  --移动并修改文件名

  #mv /data/softwaremysql-8.0.19-linux-glibc2.12-x86_64 /usr/local/mysql

新建mysql用户、组及目录
#  groupadd mysql    ---新建一个mysql组
# useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql     ---新建mysql用户禁止登录shell

  -r : 创建系统账户

  -s : 指定用户登入后所使用的shell。默认值为/bin/bash。如果不想让用户登录系统可以用 -s /sbin/nologin.此用户就不可以登录系统。

  -g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。

  -d:指定用户登入时的主目录,替换系统默认值/home/<用户名>

改变目录属有者

#cd /usr/local/mysql
#pwd
#chown -R mysql .
#chgrp -R mysql .

#chown -R mysql:mysql /data/mysql

#chown -R mysql:mysql /data/log

配置参数

#vim /etc/my.cnf

然后 按 i 进入编辑模式,把下面内容复制进去

[mysqld]
port=3306
user=mysql
datadir=/data/mysql
basedir=/usr/local/mysql
#log-error=/data/log/mysql.err
#此处如果配置了log-error,那么在接下来的操作中,执行命令如果没有打印出日志可以直接到这来查看
#并且这个地方需要特别注意的就是个别版本的mysql在这个地方有个bug!务必注意!!!
#个别版本在配置了该参数以后,数据库启动会报错,提示需要手动创建该日志目录及日志文件,且分配好文件用户权限,mysql不能自动创建该日志文件
pid-file=/usr/local/mysql/mysql.pid

初始化mysql

#cd /usr/local/mysql/bin/

#./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

 查看初始密码,复制出来(注:此处如果没有在my.cnf中配置log-error的话,执行上一条./mysqld语句会直接打印出来日志及初始密码,务必保存好初始密码)

#vim /data/log/mysql.err

启动mysql,并更改root 密码

#cd /usr/local/mysql/bin/

#./mysqld start

未启动成功报错:

#./mysqld 

直接用./mysqld启动则启动成功 

查看是否启动

#ps -ef|grep mysql

登录并修改密码

mysql -hlocalhost -uroot -p

输入刚刚初始化时生成的密码

 输入基本查询数据库命令(show databases;)提示需要更改密码;第一次登录需要重新修改密码才可以使用

修改密码:

mysql> ALTER user 'root'@'localhost' IDENTIFIED BY '12345678';

刷新权限,使其及时生效

mysql> flush privileges;

 

初始化完成

以上操作中还有一个地方需要在此补充:

问题:我们在执行mysqld和mysql命令时只能到mysql的安装目录下的bin里面执行,在其他目录中执行报找不到命令

原因:mysqld和mysql为新安装数据库的命令,存在于mysql安装目录下的bin目录里;在系统其他路径下是找不到的,故需要配置环境变量

解决方案:

  # vim /etc/profile
  添加:
  export PATH=/usr/local/mysql/bin:$PATH

source /etc/profile  #使添加变量生效

******将mysql加入到可控制启动的服务的文件夹内,并命名mysql,即service可控制的服务名,至此可用service mysql start控制启动mysql

/etc/init.d 是/etc/rc.d/init.d的链接,在/etc/init.d添加一个文件会同步在/etc/rc.d/init.d下添加一个相同文件

# cd /usr/local/mysql/

# cp support-files/mysql.server /etc/init.d/mysql

  现在可以使用下面的命令启动mysql

    service mysql start

  停止mysql服务

    service mysql stop

  重启mysql服务

    service mysql restart

  下面两种命令作用相同

    systemctl [stop|start|restart] 服务名

    service 服务名 [stop|start|restart]

Linux的mysql数据库安装在此已编写完成,此时回想起自己在平时工作用遇到的几个问题点,记录在此,在接下来的文章中会陆续总结整理:

  1. my.cnf配置文件详解
  2. mysql的基础常用命令总结
  3. mysql数据库忘记密码
  4. mysql关于只能本地登录,不能远程登录的设置
  5. mysql的备份
  6. mysql间的实时同步
原文地址:https://www.cnblogs.com/linuxtop/p/12156270.html