MySQL数据库简介以及安装

一、MySQL数据库简介

MySQL是一款深受欢迎的开源领域重要的关系型数据库产品,后被oracle收购。
MySQL是一种关系型数据库管理系统,关系型数据库的特点是将数据保存在不同的表中,再将这些表放入不同的数据库中,而不是将所有的数据统一放在一个大仓库里,这样的设计增加了MySQL的读取速度,灵活性和可管理性也得到了很大的提高。访问以及管理MySQL数据库的最常用的标准化语言为SQL结构化查询语句。

  • MySQL优点
    绝大多数的使用linux操作系统的大中小互联网公司网站都在用MySQL作为其后端的数据库存储库,是因为MySQL数据库有以下几个特点:
    1.MySQL性能好,服务稳定,很少出现宕机
    2.MySQL开放源代码且无版权制约,自主性及使用成本低
    3.MySQL历史悠久,社区以及用户非常活跃,遇到问题,可以寻求帮助
    4.MySQL软件体积小,安装简单并且易于维护
    5.MySQL可以用LAMP,LEMP流行架构
    6.MySQL支持多种操作系统,提供API接口,支持多种开发语言,对php语言有很好的支持

##二、 MySQL数据库分类与版本升级
MySQL数据库官方网站,其发布的MySQL版本采用双授权政策,和大多数开源的路线一样,分为社区版和商业版,而这两个版本又各自分四个版本依次发布。这四个版本为:Alpha版、Beta版、RC版和GA版。

  • 2.1MySQL数据库四种发布版本介绍
    Alpha版
    Alpha版一般只在开发的公司内部运行,不对外公开。主要是开发者对自己的产品进行测试,检查产品是否有缺陷、错误等
    Beta版
    Beta版一般是完成功能的开发和所有测试工作之后的产品,不会存在较大的功能金和性能bug,并且邀请用户体验和测试,以便全面了解测试软件的不足之处。
    RC版
    RC版属于生产环境之前的一个小版本,是根据Beta版本测试结果,并修复收集到的bug或缺陷之后的产品
    GA版
    GA版本是软件产品的正式发布版本,也称生产版本产品。一般情况下企业生产环境都会选择GA版本。
  • 2.2MySQL数据库产品线
    第一条是5.0.xx以及升级到5.1.xx的产品系列。这条产品线继续完善和改进其用户体验和性能,这是早期的产品线。yum安装就是用这条产品线。
    第二条产品线是5.4.xx开始到5.7.xx产品线系列。增加了新的算法和开发了新的存储引擎。大部分用5.5
    第三条产品线是6.0.xx到7.xx.xx产品系列,主要是为了更好的推广MySQL Cluster版本,以及提高MySQL集群的性能和稳定性

三、安装MySQL

MySQL有三种安装方式:第一种yum/rpm方式安装mysql,
第二种常规编译安装MySQL(./configure;make;make install),MySQL5.5.xx-5.6.xx产品系列比较特殊编译安装方式不同,采用cmake或gmake方式编译安装(./cmake;make;make install) 第三种方法采用二进制免编译安装MySQL,适合各类MySQL产品。直接下载软件包,初始化即可完成MySQL的安装和启动。
MySQL的获取方式
软件包尽量去官方网站下载
官方下载地址:https://dev.mysql.com/downloads/mysql/5.5.html#downloads
不同的安装方式下载不同的包
Linux-Generic 代表的是二进制包
编译安装的话下载Source Code,表示源码包,而二进制安装方式,就是将下载的二进制包解压后,即可

  • 3.1 采用二进制免编译的方式安装MySQL

这里选择mysql-5.5.62这个版本的二进制包,先从官网下载相应的包。如下图所示。
在这里插入图片描述
把mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz上传到/home/tools目录下。

	mkdir -p /home/tools
	cd /home/tools
    yum -y install lrzsz#下载传输工具
    rz -y #选择mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz上传
    tar -xzv  -f mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz #解压
    # ls
   mysql-5.5.62-linux-glibc2.12-x86_64#解压后包名
   mysql-5.5.62-linux-glibc2.12-x86_64.tar.gz

创建虚拟用户管理mysql

    useradd -s /sbin/nologin -M mysql
    id mysql
 uid=500(mysql) gid=500(mysql) groups=500(mysql)

把解压后的mysql包移动到安装目录下(也可以不移动直接安装个人习惯把安装目录与软件包目录分开,便于管理)

mkdir -p /home/application
mv mysql-5.5.62-linux-glibc2.12-x86_64 /home/application/#这一步就相当于编译安装的./configure

做个软连接不显示版本号

ln -s /home/application/mysql-5.5.62-linux-glibc2.12-x86_64/ /home/application/mysql#软连接
# ll
total 4
lrwxrwxrwx  1 root root   54 Jun 18 12:15 mysql -> /home/application/mysql-5.5.62-linux-glibc2.12-x86_64/
drwxr-xr-x 13 root root 4096 Jun 18 12:04 mysql-5.5.62-linux-glibc2.12-x86_64

初始化数据库

 /home/application/mysql/scripts/mysql_install_db --basedir=/home/application/mysql/  --datadir=/home/application/mysql/data/  --user=mysql
 
 #basedir指定mysql安装目录,datadir数据存放目录,user指定用户

设置mysql目录权限

chown -R mysql.mysql /home/application/mysql
 ll#查看一下
total 4
 lrwxrwxrwx  1 mysql mysql   54 Jun 18 12:15 mysql -> /home/application/mysql-5.5.62-linux-glibc2.12-x86_64/

生成mysql配置文件
Linux中MySQL配置文件my.cnf参数如何优化参考文章

  ll /home/application/mysql/support-files/*.cnf#mysql配置文件位置
-rw-r--r-- 1 7161 31415  4691 Aug 29  2018 /home/application/mysql/support-files/my-huge.cnf
-rw-r--r-- 1 7161 31415 19759 Aug 29  2018 /home/application/mysql/support-files/my-innodb-heavy-4G.cnf
-rw-r--r-- 1 7161 31415  4665 Aug 29  2018 /home/application/mysql/support-files/my-large.cnf
-rw-r--r-- 1 7161 31415  4676 Aug 29  2018 /home/application/mysql/support-files/my-medium.cnf
-rw-r--r-- 1 7161 31415  2840 Aug 29  2018 /home/application/mysql/support-files/my-small.cnf
#这些配置根据硬件选择,这里选择my-small.cnf
 cp /home/application/mysql/support-files/my-small.cnf /etc/my.cnf
 #把配置文件my-small.cnf复制到mysql默认配置文件 /etc/my.cnf中

更改启动脚本的安装目录

/home/application/mysql/bin/mysqld_safe
#mysql启动脚本位置,因为是二进制安装位置是默认的/usr/local/mysql,要替换成现在选择的安装目录
 sed -i 's#/usr/local/mysql#/home/application/mysql#g' /home/application/mysql/bin/mysqld_safe

启动mysql

/home/application/mysql/bin/mysqld_safe &#后台运行
lsof -i:3306#查看
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  2318 mysql   10u  IPv4  20171      0t0  TCP *:mysql (LISTEN)

配置环境变量
mysql的命令都在 /home/application/mysql/bin/这个目录下,为了不每次都带上绝对路径执行所以要配置mysql命令环境变量。mysql命令路径要放在$PATH前面,以免出错。

 echo 'PATH=/home/application/mysql/bin/:$PATH' >>/etc/profile  #将mysql命令路径添加到环境变量配置文件
tail -1 /etc/profile    #查看添加结果
source /etc/profile     # 有结果了,执行这一步让环境变量生效
echo $PATH           #不放心可以再检查一下生效了没有
mysql        #这样就可以直接登陆了


还有一种方法是把mysql命令复制到已经有环境变量的目录里
   echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
cp /home/application/mysql/bin/* /usr/local/bin/   #复制命令所在目录内容到 /usr/local/bin/ 

这样mysql就已经安装完成了,默认的登陆是没有密码。

优化mysql的启动方式实现开机自启动

 cp /home/application/mysql/support-files/mysql.server /etc/init.d/mysqld
 #把mysql.server启动脚本复制到/etc/init.d/目录下并改名为mysqld
 sed -i 's#/usr/local/mysql#/home/application/mysql#g' /etc/init.d/mysqld 
 #替换默认配置文件中的安装目录
 chmod +x /etc/init.d/mysqld  #增加可执行权限
  killall mysqld  #结束mysql进程
  lsof -i:3306 #查看是否杀掉进程
  /etc/init.d/mysqld start  #启动mysql
  /etc/init.d/mysqld restart #重启MySQL
  /etc/init.d/mysqld stop  #停止mysql
  chkconfig mysqld on  #设置开机自启动
  chkconfig --list  mysqld  #查看

设置及更改密码

 mysqladmin  -u root password "123456"  #刚开始安装完mysql是没有密码的,这里设置登录密码为123456
 mysql -u root -p123456 #用密码登录mysql
 quit             #退出mysql
 mysqladmin -uroot -p123456 password "mysql" #更改密码,将原密码123456改为mysql
  • 3.2采用源码编译方式安装mysql
    进入MySQL官网选择mysql-5.5.62.tar.gz源码包下载,选择方法如下图:
    源码包选择
    安装相关软件包
    编译安装中需要注意的是 5.5之前的编译方式是:./configure make && make install 而5.5之后则使用:cmake。安装cmake可以yum安装也可以编译安装。yum安装简单,执行下面两个命令即可。

     yum list cmake | grep cmake  #查看yum安装的版本
     
     yum -y install cmake      #开始安装
    

    这里选择编译安装cmake

        yum install -y gcc gcc-c++      #一会编译需要gcc
        mkdir -p /home/tools
        cd /home/tools
        wget  https://cmake.org/files/v2.6/cmake-2.6.3.tar.gz  #下载cmake
         tar -xzv -f cmake-2.6.3.tar.gz  #解压cmake
         cd cmake-2.6.3
         ./configure
        # -- Build files have been written to: /home/tools/cmake-2.6.3
       # CMake has bootstrapped.  Now run gmake.提示你用gmake
         gmake
         gmake install
    

    安装 ncurses-devel libaio-devel 包

      yum install -y ncurses-devel libaio-devel   
    

    创建管理用户mysql管理mysql

     groupadd mysql
     useradd mysql -s /sbin/nologin -M -g mysql
    

    编译安装mysql

    tar -xzv -f mysql-5.5.62.tar.gz    #解压mysql源码安装包
    cd mysql-5.5.62                         #进入mysql目录然后运行cmake
    

    进行cmake安装
    cmake安装过程做了什么呢?
    定制功能:存储引擎、字符集、压缩等
    定制安装位置、数据存放位置、文件位置

    cmake . -DCMAKE_INSTALL_PREFIX=/home/application/mysql-5.5.62 \    #mysql安装目录
     -DMYSQL_DATADIR=/home/application/mysql-5.5.62/data \   #mysql数据存放目录
     -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \  #锁目录
     -DDEFAULT_CHARSET=utf8 \   #语言格式
     -DDEFAULT_COLLATION=utf8_general_ci \
     #如果编译的时候指定了字符集,则默认创建的库就会用指定的字符集,上面两行可以去掉,即不指定
     -DWITH_EXTRA_CHARSETS=all \
     -DWITH_INNOBASE_STORAGE_ENGINE=1 \
     -DWITH_FEDERATED_STORAGE_ENGINE=1 \
     -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
     -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
     -DWITH_ZLIB=bundled \
     -DWITH_SSL=bundled \
     -DENABLED_LOCAL_INFILE=1 \
     -DWITH_EMBEDDED_SERVER=1 \
     -DENABLE_DOWNLOADS=1 \
     -DWITH_DEBUG=0
    

    进行编译安装

      make && make install  
    

    做一个软连接出掉版本号

      ln -s /home/application/mysql-5.5.62/ /home/application/mysql
    

    选择配置文件

       ll /home/application/mysql/support-files/
    total 96
    -rwxr-xr-x 1 root root  1153 Jun 19 12:04 binary-configure
    -rw-r--r-- 1 root root  4528 Jun 19 12:04 config.huge.ini
    -rw-r--r-- 1 root root  2382 Jun 19 12:04 config.medium.ini
    -rw-r--r-- 1 root root  1626 Jun 19 12:04 config.small.ini
    -rw-r--r-- 1 root root   773 Aug 29  2018 magic
    -rw-r--r-- 1 root root  4779 Jun 19 12:04 my-huge.cnf
    -rw-r--r-- 1 root root 19819 Jun 19 12:04 my-innodb-heavy-4G.cnf
    -rw-r--r-- 1 root root  4753 Jun 19 12:04 my-large.cnf
    -rw-r--r-- 1 root root  4764 Jun 19 12:04 my-medium.cnf
    -rw-r--r-- 1 root root  2928 Jun 19 12:04 my-small.cnf   #选择这个较小的配置文件
    -rwxr-xr-x 1 root root  1061 Jun 19 12:04 mysqld_multi.server
    -rwxr-xr-x 1 root root   909 Jun 19 12:04 mysql-log-rotate
    -rwxr-xr-x 1 root root 10649 Jun 19 12:04 mysql.server
    -rw-r--r-- 1 root root  1326 Jun 19 12:04 ndb-config-2-node.ini
        
    cp /home/application/mysql/support-files/my-small.cnf  /etc/my.cnf   #复制配置文件
    

初始化及配置数据库
主要是指定mysql的管理用户,程序路径,数据存储路径,如果不设置管理用户为mysql会导致启动报错

  /home/application/mysql/scripts/mysql_install_db  --basedir=/home/application/mysql/ --datadir=/home/application/mysql/data --user=mysql  
  #--basedir指定安装目录,datadir指定数据存放目录  --user 指定用户

设置mysql目录权限

   chown -R mysql.mysql /home/application/mysql/
   chmod -R 1777 /tmp/

启动mysql

  /home/application/mysql/bin/mysqld_safe &       # 这里报了一个错
  
   mysqld_safe Directory '/home/application/mysql-5.5.62/tmp' for UNIX socket file don't exists.
   #提示文件/home/application/mysql-5.5.62/tmp不存在
解决办法
vim /etc/my.cnf 
#将socket          = /home/application/mysql-5.5.62/tmp/mysql.sock 改为
socket          =/tmp/mysql.sock

设置命令环境变量
mysql的命令都在 /home/application/mysql/bin/这个目录下,为了不每次都带上绝对路径执行所以要配置mysql命令环境变量。mysql命令路径要放在$PATH前面,以免出错。

 echo 'PATH=/home/application/mysql/bin/:$PATH' >>/etc/profile  #将mysql命令路径添加到环境变量配置文件
 tail -1 /etc/profile    #查看添加结果
source /etc/profile     # 有结果了,执行这一步让环境变量生效
echo $PATH           #不放心可以再检查一下生效了没有
mysql        #这样就可以直接登陆了

优化mysql启动方式

 cp /home/application/mysql/support-files/mysql.server /etc/init.d/mysqld
  chmod u+x /etc/init.d/mysqld 
  /etc/init.d/mysqld status
  /etc/init.d/mysqld restart
  /etc/init.d/mysqld stop
  chkconfig --add mysqld
  chkconfig  mysqld on

设置及更改密码

 mysqladmin  -u root password "123456"  #刚开始安装完mysql是没有密码的,这里设置登录密码为123456
mysql -u root -p123456 #用密码登录mysql
quit             #退出mysql
mysqladmin -uroot -p123456 password "mysql" #更改密码,将原密码123456改为mysql
update mysql.user set passwd=password(123456) where user='root' and host='localhost'   #登录mysql数据库后改密码方式
flush privileges #刷新生效
  • 3.3 yum安装mysql

我们通过命令:yum list | grep mysql来查看yum上提供的数据库可下载版本
64位系统 选择安装 mysql.x86_64 mysql-server.x86_64 mysql-devel.x86_64

   yum -y install mysql.x86_64 mysql-server.x86_64 mysql-devel.x86_64
   service mysqld start  #启动mysql
   
   设置密码方法同上。

在这里插入图片描述
解压
tar -xf MySQL-5.5.62-1.el6.x86_64.rpm-bundle.tar
然后按照以下顺序进行安装,因为它们之间存在依赖关系
common --> libs --> clients --> server

四、MySQL密码丢失找回方法

  • 首先停止mysql数据库

    /etc/int.d/mysqld stop

使用–skip-grant-tables启动MySQL,忽略授权登录认证

 mysqld_safe --skip-grant-tables --user=mysql &   
 mysql -u root -p  #登录mysql,此时密码为空
update mysql.user set passwd=password(‘’123456‘’) where user='root' and host='localhost'   #使用update改
 flush privileges #刷新生效

猜你喜欢

转载自blog.csdn.net/weixin_44596822/article/details/92622400
今日推荐