zoukankan      html  css  js  c++  java
  • Centos6 源码安装mysql5.6

    这里介绍如何使用centos6.*来安装mysql5.6版本。

    先做一下准备工作

    确定好用于运行mysql的用户,安全起见,建议拒绝次用户登录,仅用于运行程序。

    useradd  mysql -s/sbin/nologin

    如果电脑的物理内存不是很多(1G以下),可以开启虚拟内存来缓解物理内存压力,避免应为内存的问题安装失败,或许也可以轻微的提升速度。

    mkdir  /myswap   #创建一个swap文件
    dd if=/dev/zero  of=/myswap  bs=1k count=2048000 #给swap文件提供2G的空间
    mkswap  /myswap  
    swap  on   #启用,启用后可以用free -m看一下是否正常应用了。

    安装前确保先安装了CMAKE等这些编译需要用到的工具

     yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio
    
    mysql: wget  https://cdn.mysql.com//archives/mysql-5.6/mysql-5.6.35.tar.gz

    使用tar 命令将mysql的tar包解压到一个特定的位置

     tar xf mysql-5.6.35.tar.gz  -C /usr/src/

    然后进入解压后的mysql源码包中

    接下来使用cmake来编译安装mysql

    cmake 
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
    -DMYSQL_DATADIR=/usr/local/mysql/data 
    -DWITH_MYISAM_STORAGE_ENGINE=1 
    -DWITH_INNOBASE_STORAGE_ENGINE=1 
    -DWITH_ARCHIVE_STORAGE_ENGINE=1 
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 
    -DENABLED_LOCAL_INFILE=1 
    -DDEFAULT_CHARSET=utf8 
    -DDEFAULT_COLLATION=utf8_general_ci 
    -DEXTRA_CHARSETS=all 
    -DMYSQL_TCP_PORT=3306 
    -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock 
    -DWITH_DEBUG=0

    等待一小会,执行完毕后确定没有问题的话在执行下一步操作来编译和安装

    make&&make install

    接下来是一个漫长的等待过程

    等待进度到100%后可以在/usr/local/中看到mysql目录的信息。

    开头说过,需要使用一个特定的用户来启动mysql,所以需要提前把目录的所属主和组都改一下,避免操作下一步的时候出现权限不足等问题。

    [root@A 17:54:19]/usr/src/mysql-5.6.35]#chown  mysql.mysql /usr/local/mysql -R

    下一步,初始化mysql。

    进入/usr/local/mysql目录下,在scripts目录下存初始化的执行文件,操作初始化,在mysql5.7版本后就不是使用这个文件初始化了,直接使用mysqld初始化。

    [root@A 17:56:56]/usr/local/mysql]#./scripts/mysql_install_db  --user=mysql  --datadir=/usr/local/mysql/data  --basedir=/usr/local/mysql

    正常的话这几步操作很流利,不会出现报错,下一步,将mysql的启动程序移动到/etc/init.d/下方便启动,默认官方提供的启动脚本在安装目录下的support-files/ mysql.server  。

    [root@A 18:01:41]/usr/local/mysql]#cp  support files/mysql.server   /etc/init.d/mysqld

    mysql启动时会检查my.cnf也就是mysql的主配置文件,需要在CMAKE编译时指定,对应参数是:-DSYSCONFDIR=/etc   这就告诉mysql在/etc/下找my.cnf文件来读取配置,我习惯了直接在安装目录下配置,这也是mysql默认的机制,如果不配置的话,默认在安装目录下。

    [root@A 18:06:16]/usr/local/mysql]#ls
    bin  COPYING  data  docs  include  lib  logs  man  my.cnf  my-new.cnf  mysql.pid  mysql-test  README  scripts  share  sql-bench  support-files
    

    my.cnf文件中定义mysql的缓存参数,数据目录等等信息,我的配置如下。

      #mysqld定义的是服务端,也就是说,以后针对本机mysql的配置要写在这个标签下面
    
    
    [mysqld]
    
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    
    # These are commonly set, remove the # and set as required.
     log-error = /usr/local/mysql/logs/error.log
     pid-file = /usr/local/mysql/mysql.pid
     basedir = /usr/local/mysql
     datadir = /usr/local/mysql/data
     port = 3306
     server_id = 1
     socket = /tmp/mysqld.sock
     user= mysql
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M

    检查后正常后,就可以启动测试了。

    service  mysqld start

    启动后,看3306端口有没有监听,监听后就可以连接,没有监听就去/usr/local/mysql/logs/error.log中看错误。

    [root@A 18:14:14]~]#netstat -antp |grep LISTEN
    tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      20011/mysqld        
    tcp        0      0 0.0.0.0:2222                0.0.0.0:*                   LISTEN      10250/sshd          
    tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      20483/httpd         
    tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1655/master

    启动后就可以连接了,默认没有密码。

    直接使用root用户就可以连接进入。

    mysql -uroot   -hlocalhost

    连接后要及时更改root的密码。

    mysql> USE mysql; mysql> UPDATE user SET Password = password (‘新密码’) WHERE User = root; mysql> flush privileges ; mysql> quit

    退出后即可验证,至此,mysql安装完毕。

    这个call机是我的唉
  • 相关阅读:
    Python网络编程(weekly summary1)
    Python网络编程(子进程的创建与处理、简单群聊工具)
    Python网络编程(epoll内核监听,多任务多进程)
    Python网络编程(http协议,IO多路复用、select内核监听)
    Python网络编程(socket模块、缓冲区、http协议)
    Python网络编程(OSI模型、网络协议、TCP)
    Linux(Ubuntu 命令大全)
    计算机中的进制和编码
    算法图解(选择排序)
    Python全栈 MySQL 数据库(SQL命令大全、MySQL 、Python调用)
  • 原文地址:https://www.cnblogs.com/xiaodai12138/p/8963672.html
Copyright © 2011-2022 走看看