MySQL介绍

MySQL原本是一个开放源码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL成为Oracle旗下产品。

MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。非常流行的开源软件组合LAMP中的“M”指的就是MySQL。

MySQL的license现在分为免费的社区版与收费的标准版、企业版等[7]。一般说来,如果在非开源项目中发布了MySQL,或者需要Oracle公司提供对MySQL的技术支持,或者使用MySQL的一些企业版工具或插件,或者修改MySQL源代码并作为闭源的软件等等情形,需要购买商业版本。如果只是安装并使用MySQL,甚至修改并使用MySQL,无论是否收费;或者软件中不包含MySQL,软件的用户自行安装MySQL;或者使用GPL协议的开源软件产品中包含了MySQL,这些情形可能使用社区版MySQL。(摘自维基百科)

安装环境

  • Centos 7.3
  • MySQL Community Server 5.7.35

    MySQL安装

    安装包下载

    1
    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.35.tar.gz

    安装依赖包

    1
    yum -y install gcc gcc-c++ bzip2-* bison cmake ncurses ncurses-devel openssl openssl-devel zlib-devel libtirpc.x86_64 libtirpc-devel.x86_64

解压安装包

1
tar zxvf mysql-boost-5.7.35.tar.gz

编译

1
2
3
4
5
6
7
8
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data/ \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 \
-DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci -DWITH_DEBUG=0 \
-DWITH_EMBEDDED_SERVER=1 -DDOWNLOAD_BOOST=1 \
-DENABLE_DOWNLOADS=1 -DWITH_BOOST=boost

编译参数说明

  • -DCMAKE_INSTALL_PREFIX=/usr/local/mysql //编译指定安装后的目录
  • -DMYSQL_DATADIR=/usr/local/mysql/data/ //编译指定数据的存储目录
  • -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock // 编译指定UNIX socket文件
  • -DWITH_INNOBASE_STORAGE_ENGINE=1 //启用InnoDB引擎支持
  • -DWITH_MYISAM_STORAGE_ENGINE=1 //
  • -DENABLED_LOCAL_INFILE=1 //启用加载本地数据
  • -DEXTRA_CHARSETS=all-DDEFAULT_CHARSET=utf8 //扩展字符集支持utf8
  • -DDEFAULT_COLLATION=utf8_general_ci //默认字符校对
  • -DWITH_DEBUG=0 //禁用调式模式
  • -DWITH_EMBEDDED_SERVER=1 //启用嵌入式服务器
  • -DDOWNLOAD_BOOST=1 //
  • -DENABLE_DOWNLOADS //
  • -DWITH_BOOST //

    安装

    1
    make -j2 && make install

    安装后的优化准备

    新建用户mysql

    1
    useradd -s /sbin/nologin -r mysql

    创建MySQL文件夹并赋权

    1
    mkdir -pv /usr/local/mysql/data
    1
    chown -R mysql:mysql /usr/local/mysql/

    创建启动项

    1
    cp support-files/mysql.server /etc/init.d/mysql
    1
    chmod 755 /etc/init.d/mysql

    创建相关软链接

    1
    2
    3
    4
    5
    ln -sf /usr/local/mysql/bin/* /usr/bin/
    ln -sf /usr/local/mysql/lib/* /usr/lib/
    ln -sf /usr/local/mysql/libexec/* /usr/local/libexec
    ln -sf /usr/local/mysql/share/man/man1/* /usr/share/man/man1
    ln -sf /usr/local/mysql/share/man/man8/* /usr/share/man/man8

    修改配置文件

    1
    vim /etc/my.cnf

1
2
3
4
5
6
7
8
9
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
character_set_server=utf8
[mysqld_safe]
log-error=/var/log/mysql.log
pid-file=/var/run/mysql.pid

初始化数据库

1
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

启动数据库并配置安全初始化

1
/etc/init.d/mysql start

1
mysql_secure_installation

附:创建数据库&创建数据库用户

  • 创建数据库xxx
    1
    create database xxx character set utf8 collate utf8_bin;
  • 赋权
    1
    grant all privileges on xxxxxx.* to xxx@'%' identified by 'xxxxxxx';
  • 设置编码utf8
    1
    set names utf8;   
  • 刷新权限
    1
    flush privileges;