MySQL安装与介绍

来源:互联网 发布:js格式化 编辑:程序博客网 时间:2024/06/09 01:23

一、选择MySQL理由

  1、mysql性能卓越,服务稳定,很少出现异常宕机

  2、mysql开源免费,无版权制约,自主性及使用成本低

  3、产品耦合度,mysql支持多种操作系统,支持多开发语言,特别是php

  4、技术积累,庞大的活跃的社区,

  5、软件体积小,安装简单,易于维护


二、MySQL数据分类与版本升级

MySQL官网http://www.mysql.com/

MySQL版本采用双授权政策,和大多数开源产品路线一样,分为社区版和商业版,并且这两个版本又分别分成四

个版本依次发布,Alpha版、Beta版、RC版和GA版<GA版即为正式版>

    1、社区版和企业版的区别

    1) 首先价格上,社区版完全免费,企业版需要高额的费用

    2) 技术上,企业版具有MySQL企业级服务器、MySQL企业级系统监控工具。企业版经过严格的测试认证,相对企业版,社区版的开发测试环境没有那么严格

    3)服务方面,社区版mysql官方不提供任何技术支持,使用过程出现任何意外不负任何责任,企业版与之相反

    4)商业版不支持GPL协议

    2MySQL产品路线

    三条产品线

    15.0.XX5.1.XX产品系列

      这条产品线继续完善改进用户体验和性能,同时增加新功能,是mysql早期产品的延续,如rhel6自带的mysql

    25.4.XX开始到5.7.XX产品系列

      mysql社区和第三方公司percona整合的,吸收新的算法和存储引擎,现在已经到了5.6.26

    36.0.XX7.X.XX产品系列

      主要是为了更好的推广MySQL Cluster版本,提供Cluster版本的性能和稳定性,这个版本比较少公司用,原因是出来太晚了。


三、MySQL安装

1、生产环境怎么选择MySQL

  1)选择稳定版 选择社区的GA

  2)产品线,主要是5.15.5 ,多数5.5

  3)选择MySQL GA版发布6个月以上的版本

  4)最好向后较长时间没有更新发布的版本

  5)与开发人员使用版本的兼容

  6)测试环境跑3-6个月

  7)到生产环境非核心业务跑几个月


2、MySQL安装方法

  1)使用二进制方式安装,rpm/yum

  2)源码编译,产品线路1用普通编译安装,线路2cmake编译安装5.5/6/7

  3)批量部署,src.rpm  通过spec文件 


3、源码编译安装mysql5.5.32

   PS:如果是mysql5.1系列的直接使用编译安装,不用cmake

  1)安装cmake编译工具和终端操作的开发包

[root@cherry163 ~]#    yum install cmake -y

[root@cherry163 ~]#    yum install ncurses-devel –y 

  2)下载MySQL

[root@cherry163 ~]#    wget http://ftp.ntu.edu.tw/pub/MySQL/Downloads/MySQL-5.5/mysql-5.5.32.tar.gz

或下载到本地,在xshell安装lrzsz用rz上传到服务器中。

  3)添加用户

[root@cherry163 ~]#   useradd -u 8001 -s /sbin/nologin mysql

  4)创建数据库存放目录

[root@cherry163 ~]# mkdir /data

  5)解压安装包

[root@cherry163 ~]# tar -xf mysql-5.5.32.tar.gz -C /usr/local/src

[root@cherry163 ~]# cd /usr/local/src

[root@cherry163 src]# ls

[root@cherry163 mysql-5.5.22]# cd mysql-5.5.22

  6)编译安装

[root@cherry163 mysql-5.5.22]#  cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data -DMYSQL_USER=mysql

参数说明:

-DCMAKE_INSTALL_PREFIX   数据文件存放目录

-DMYSQL_UNIX_ADDR            sock文件路径

-DDEFAULT_CHARSET     默认字符集

-DDEFAULT_COLLATION    默认字符校对

-DWITH_EXTRA_CHARSETS   扩展字符支持  默认all

-DWITH_storage_STORAGE_ENGINE    存储引擎的支持,默认支持MyISAM,MERGE,MEMORY,CVS存储引擎

-DENABLED_LOCAL_INFILE=1           启用加载本地数据

-DMYSQL_DATADIR数据存放目录

-DMYSQL_USERmysql运行用户

扩展:

-DWITH_PARTITION_STORAGE_ENGINE=1   支持分区表

-DINSTALL_LIBDIR=dir_name

-DSYSCONFDIR=dir_name    The default my.cnf option file directory

 

[root@cherry163 mysql-5.5.22]#  make -j 4 && make install    #-j 4 是指使用4cpu核心数,如我们的双核四线程,就可以写4

   7)  授权用户 

[root@cherry163 ~]# chown -R mysql:mysql  /usr/local/mysql/

[root@cherry163 ~]# chown –R mysql:mysql /data

[root@cherry163 ~]# chmod 1777 /tmp

   8)创建配置文件

[root@cherry163 ~]#   cp support-files/my-large.cnf /etc/my.cnf

  9)设置环境变量

[root@cherry163 ~]#  echo 'export PATH=/usr/local/mysql/bin:$PATH' >>/etc/profile

[root@cherry163 ~]#   source !$

  10)创建服务启动脚本,添加开机启动

[root@cherry163 ~]#    cp support-files/mysql.server /etc/init.d/mysqld

[root@cherry163 ~]#    chmod +x /etc/init.d/mysqld  给脚本添加执行权限

 [root@cherry163 ~]#   vim /etc/init.d/mysqld  服务启动脚本要修改以下两个参数

    basedir=/usr/local/mysql  MySQL安装目录

    datadir= /data   数据存放目录

    chkconfig mysqld on  添加开机启动

  11)初始化数据库

[root@cherry163 ~]#   chmod +x scripts/mysql_install_db

[root@cherry163 ~]#    /usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data --user=mysql

看到两个ok就成功


  12)初始化安全配置

[root@cherry163 ~]#    mysql_secure_installation  安全初始化配置

  13)排错

    出现错误:

    Enter current password for root (enter for none):

    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

    干掉mysql进程

[root@cherry163 ~]#    pkill mysqld

[root@cherry163 ~]#    rm -rf  /data/*

    重新初始化

[root@cherry163 ~]#    mysql_secure_installation

 

  13MySQL安全优化小配置

    用户安全

    mysql> select user,host from mysql.user;

    mysql> delete from mysql.user where user='';

    mysql> delete from mysql.user where host='server01.cn';

    mysql> delete from mysql.user where host='::1';

    mysql> select user,host from mysql.user;

    +------+-----------+

    | user | host      |

    +------+-----------+

    | root | 127.0.0.1 |

    | root | localhost |

 

    或者把用户都删了,添加一个额外的管理员

    mysql> delete from mysql.user;

    mysql> grant all privileges on *.* to system@'localhost' identified by '123456' with grant option;

mysql> flush privileges;

    mysql> select user,host from mysql.user;

    +--------+-----------+

    | user   | host      |

    +--------+-----------+

    | system | localhost |

    +--------+-----------+

    1 row in set (0.00 sec)

 

     mysql> drop database test;


PS:编译出现错误


[root@cherry163 ~]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data -DMYSQL_USER=mysql

-- MySQL 5.5.22

-- Configuring done

-- Generating done

-- Build files have been written to : /usr/local/src/mysql-5.5.22

解决办法:



[root@cherry163 ~]#  rm -fr CMakeCache.txt




1 0
原创粉丝点击