zoukankan      html  css  js  c++  java
  • centos7 安装mysql

    确认你的安装版本

    mysql分为开发版本和稳定版本(GA),开发版本拥有最新的特性,但是并不稳定,也没有完全经过测试,可能存在严重的bug,而稳定版本是经过了长时间的测试,消除了具有已知的bug,其稳定性和安全性都得到一定的保障。

    对于一个mysql的版本号如:mysql-5.6.1-m1,这个版本号意味着什么呢?
    1.对于5.6.1的解释:第一个数字5代表了文件格式,第二个数字6代表了发行级别,第三个数字1代表了版本号。更新幅度较小时,最后的数字会增加,出现了重大特性更新时,第二个数字会增加,文件格式改变时,第一个数字会增加 
    2.对于m1的解释:这是用来表明这个mysql版本的稳定性级别的,如果没有这个后缀,那么这个版本就是一个稳定版(GA);如果这个后缀是mN(例如m1,m2)格式,表明了这个版本加入了一些经过彻底测试的新特性,可以认为这是一个试生产的模具;如果这个后缀是rc,表明了这是一个候选版本,已经修改了已知的重要bug,但是没有经过足够长时间的使用来确认所有的bug已经被修复。

    一旦选择了版本号,就要选择使用哪个发行版,你可以使用二进制发行版如RPM包或Zip压缩包等,但是如果你要实现如下的功能,就要选择源码安装(本文正是选择源码安装的方式):
    1.l把mysq安装到指定位置 
    2.l使用mysql的一些特性(标准的二进制版本中并没有这些特性)如:TCP封包支持,调试mysql 
    3.二进制版本中默认支持所有的字符集,但你可以在编译安装源码时指定字符集,从而使得安装的mysql更小

    下载mysql

    在这里下载mysql:http://dev.mysql.com/downloads/mysql/


    安装mysql

    准备安装环境

    首先检查是否已经安装过mysql 和 mariadb

    [root@localhost src]# rpm -qa | grep mysql

    有的话就卸载掉以前安装的mysql:

    [root@localhost src]# rpm -e --nodeps xxx(xxx是搜索结果)

    并删除所有的相关文件:

    /etc/my.cnf

    编译和安装

    安装编译代码所需要的包

    [root@localhost src]# yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio
    [root@localhost src]# yum install libaio libaio-devel -y
    [root@localhost src]# yum install perl-Data-Dumper -y
    [root@localhost src]# yum install net-tools -y

    解压安装包并编译安装

    [root@localhost src]# tar xvf mysql-5.6.25.tar.gz
    [root@localhost src]# cd mysql-5.6.25
    [root@localhost mysql-5.6.25]#cmake
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
    -DMYSQL_DATADIR=/usr/local/mysql/data
    -DSYSCONFDIR=/etc
    -DWITH_MYISAM_STORAGE_ENGINE=1
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_MEMORY_STORAGE_ENGINE=1
    -DWITH_READLINE=1
    -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock
    -DMYSQL_TCP_PORT=3306
    -DENABLED_LOCAL_INFILE=1
    -DWITH_PARTITION_STORAGE_ENGINE=1
    -DEXTRA_CHARSETS=all
    -DDEFAULT_CHARSET=utf8
    -DDEFAULT_COLLATION=utf8_general_ci


    编译成功

    [root@localhost src]# make && make install

    至此,mysql安装完成

    配置mysql

    检查系统是否已经有mysql用户,如果没有则创建

    [root@localhost mysql-5.6.25]# cat /etc/passwd | grep mysql
    [root@localhost mysql-5.6.25]# cat /etc/group | grep mysql

    创建mysql用户(但是不能使用mysql账号登陆系统)

    groupadd mysql #添加mysql组

    useradd -g mysql mysql -s /bin/false #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统

    修改权限

    [root@localhost mysql-5.6.25]# chown -R mysql:mysql /usr/local/mysql


    ./scripts/mysql_install_db –user=mysql –basedir=/usr/local/mysql –datadir=/data/mysql #生成mysql系统数据库

    PATH=$PATH:/usr/local/mysql/bin



    注:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!

    注意:在CentOS 7版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。

    在使用"yum update"更新系统后,需要检查下/etc目录下是否会多出一个my.cnf,如果多出,将它重命名成别的。否则,MySQL将使用这个配置文件启动,可能造成无法正常启动等问题。


    错误:

    在启动日志报错:   Can't start server : Bind on unix socket

    /var/lib/mysql/ 没有写入权限 

    解决:chown mysql:mysql /var/lib/mysql/

    警告错误:Warning: World-writable config file '/usr/local/mysql/my.cnf' is ignored

    my.cnf的权限太高,任何人都可以读写,mysql会自动忽略 

    解决:chmod 644 my.cnf


    参考 http://www.linuxidc.com/Linux/2015-06/119354.htm
     

     
  • 相关阅读:
    门禁控制系统的状态机-《实时控制软件设计》第二周作业
    [leetcode] Single Number
    [leetcode] Candy
    [leetcode] Gas Station
    [leetcode] Clone Graph
    [leetcode] Palindrome Partitioning II
    [leetcode] Palindrome Partitioning
    [leetcode] Surrounded Regions
    [leetcode] Sum Root to Leaf Numbers
    [leetcode] Longest Consecutive Sequence
  • 原文地址:https://www.cnblogs.com/signheart/p/6595335.html
Copyright © 2011-2022 走看看