美文网首页
CentOS6.5下编译安装MySQL 5.6.35并连接

CentOS6.5下编译安装MySQL 5.6.35并连接

作者: GREG蓝天 | 来源:发表于2019-01-08 11:36 被阅读0次

    一、查找mysql依赖环境

    安装mysql前需要查询系统中含有的有关mysql的软件。

    rpm -qa | grep -i mysql
    
    mysql-libs-5.1.71-1.el6.i686 
    

    它是好几个软件的依赖,其中在mini版本中postfix软件依赖mysql-libs,网络上很多建议都是直接删除,yum remove mysql-libs 或者 rpm -e --nodeps mysql-libs-5.1.71-1.el6.i686,但这样不好,有些应用需要安装mysql 5.1的库。网上找后,不需要降级mysql,安装 MySQL-shared-compat 就可以了,到 http://rpm.pbone.net 找到相应版本号的rpm包,例如我的是 5.6.35,下载安装上就OK了

    二、编译安装MySQL前的准备工作

    1)安装编译源码所需的工具和库:

    yum install gcc gcc-c++ ncurses-devel perl
    

    (2)安装cmake,从http://www.cmake.org 下载源码并编译安装

    wget https://cmake.org/files/v3.7/cmake-3.7.2.tar.gz
    tar -xzvf cmake-3.7.2.tar.gz
    cd cmake-3.7.2.tar.gz
    ./bootstrap
    make
    make install
    cd ~
    

    三、设置MySQL用户和组

    (1)新增mysql用户组

    groupadd mysql
    

    (2)新增mysql用户

    useradd -r -g mysql mysql
    

    四、新建MySQL所需要的目录

    (1)新建mysql安装目录

    mkdir -p /usr/local/mysql
    

    (2)新建mysql数据库数据文件目录

    mkdir -p /data/mysqldb
    

    五、下载MySQL源码包并解压

    http://dev.mysql.com/downloads/mysql/ 直接下载源码,解压mysql-5.6.35.tar.gz

    wget http://dev.mysql.com/downloads/mysql/mysql-5.6.35.tar.gz
    tar -zxv -f mysql-5.6.35.tar.gz
    cd mysql-5.6.35
    

    六、编译安装MySQL

    从mysql5.5起,mysql源码安装开始使用cmake了,设置源码编译配置脚本。
    (1)设置编译参数:
    cmake
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
    -DDEFAULT_CHARSET=utf8
    -DDEFAULT_COLLATION=utf8_general_ci
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_ARCHIVE_STORAGE_ENGINE=1
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1
    -DMYSQL_DATADIR=/data/mysqldb
    -DMYSQL_TCP_PORT=3306
    -DENABLE_DOWNLOADS=1
    -DCMAKE_INSTALL_PREFIX=dir_name # 设置mysql安装目录
    -DMYSQL_UNIX_ADDR=file_name # 设置监听套接字路径,这必须是一个绝对路径名。默认为/tmp/mysql.sock
    -DDEFAULT_CHARSET=charset_name # 设置服务器的字符集。缺省情况下,MySQL使用latin1的(CP1252西欧)字符集,cmake/character_sets.cmake文件包含允许的字符集名称列表。
    -DDEFAULT_COLLATION=collation_name #设置服务器的排序规则。
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_ARCHIVE_STORAGE_ENGINE=1
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1
    -DWITH_PERFSCHEMA_STORAGE_ENGINE=1
    存储引擎选项:
    MyISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。
    静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1

    可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)
    -DMYSQL_DATADIR=dir_name # 设置mysql数据库文件目录
    -DMYSQL_TCP_PORT=port_num # 设置mysql服务器监听端口,默认为3306
    -DENABLE_DOWNLOADS=bool 是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试。

    (2)重新运行配置,需要删除CMakeCache.txt文件

    rm CMakeCache.txt
    

    (3)编译并安装

    make
    make install
    

    七、修改mysql目录所有者和组

    (1)修改mysql安装目录的所有者和组

    cd /usr/local/mysql
    chown -R mysql:mysql . 
    

    (2)修改mysql数据库文件目录

    cd /data/mysqldb
    chown -R mysql:mysql .
    

    八、初始化mysql数据库

    cd /usr/local/mysql
    scripts/mysql_install_db --basedir=/usr/local/mysql --user=mysql --datadir=/data/mysqldb
    

    九、复制mysql服务启动配置文件

    cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
    # 注:如果/etc/my.cnf文件存在,则覆盖。
    

    十、复制mysql服务启动脚本及加入PATH路径

    cp support-files/mysql.server /etc/init.d/mysqld
    vim /etc/profile
    PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
    export PATH
    source /etc/profile
    

    十一、启动mysql服务并加入开机自启动(可选这个步骤,以后可以自己启动的)

    service mysqld start
    chkconfig --level 35 mysqld on
    

    注:我在操作时报错:
    The server quit without updating PID file (/data/mysqldb/[FAILED]a9fb59k2wxqfo3Z.pid).
    解决方法:修改/etc/my.cnf 中datadir,指向正确的mysql数据库文件目录

    image.png

    十二、检查mysql服务是否启动

    netstat -tulnp | grep 3306 
    mysql -u root -p
    密码为空,如果能登陆上,则安装成功。
    

    十三、修改MySQL用户root的密码

    mysqladmin -u root password '123456'
    

    注:也可运行安全设置脚本,修改MySQL用户root的密码,同时可禁止root远程连接,移除test数据库和匿名用户。

    /usr/local/mysql/bin/mysql_secure_installation
    

    十四、安装好之后远程不能直接访问,需要做如下操作:

    (1)在linux系统中添加3306端口到防火墙中:

    iptables -A INPUT -i eth0 -p tcp --dport 3306 -j ACCEPT
    

    (2)将user表中user字段为root的 host字段设置成%:
    登录进mysql执行如下语句(mysql -uroot -p):

    use mysql;
    SELECT Host,User FROM user;
    UPDATE user SET Host = '%' WHERE User= 'root' LIMIT 1;
    flush privileges;
    

    然后再连接,成功!

    十五、可能会出现的错误

    • 问题1:
      ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
      解决:
      新建一个链接或在mysql中加入-S参数,直接指出mysql.sock位置。
    ln -s /usr/local/mysql/data/mysql.sock /tmp/mysql.sock  
    /usr/local/mysql/bin/mysql -u root -S /usr/local/mysql/data/mysql.sock  
    
    • 问题2:
      MySQL问题解决:-bash:mysql:command not found
      因为mysql命令的路径在/usr/local/mysql/bin下面,所以你直接使用mysql命令时,
      系统在/usr/bin下面查此命令,所以找不到了
      解决办法是:
    ln -s /usr/local/mysql/bin/mysql /usr/bin
    # 做个链接即可
    

    相关文章

      网友评论

          本文标题:CentOS6.5下编译安装MySQL 5.6.35并连接

          本文链接:https://www.haomeiwen.com/subject/jgkvrqtx.html