zoukankan      html  css  js  c++  java
  • mysql学习(1)-linux操作系统源码包安装

    背景:

    CentOS 6.4下通过yum安装的MySQL是5.1版的,比较老,所以就想通过源代码安装高版本的5.6.22。

    正文:

     

    一:卸载旧版本

    使用下面的命令检查是否安装有MySQL Server

    rpm -qa | grep mysql

    有的话通过下面的命令来卸载掉

    rpm -e mysql   //普通删除模式

    rpm -e --nodeps mysql    // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除。

     

    二:安装MySQL

    安装编译代码需要的包

    yum -y install make gcc-c++ cmake bison-devel  ncurses-devel

    下载MySQL 5.6.22

    wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.22.tar.gztar xvf mysql-5.6.14.tar.gzcd mysql-5.6.22

    编译安装(cmake)

    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

    make && make install

    编译的参数可以参考http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html

    配置释义:

     

    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql     设置安装目录
    -DMYSQL_DATADIR=/usr/local/mysql/data       设置数据库存放目录
    -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock 设置UNIX socket 目录
    -DMYSQL_USER=mysql                          设置运行用户
    -DDEFAULT_CHARSET=utf8                      设置默认字符集,默认latin1
    -DEFAULT_COLLATION=utf8_general_ci          设置默认校对规则,默认latin1_general_ci
    -DWITH_INNOBASE_STORAGE_ENGINE=1            添加InnoDB引擎支持
    -DENABLE_DOWNLOADS=1                        自动下载可选文件,比如自动下载谷歌的测试包
    -DMYSQL_TCP_PORT=3306                       设置服务器监听端口,默认3306
    -DSYSCONFDIR=/etc                           设置my.cnf所在目录,默认为安装目录

     

     

    整个过程需要30分钟左右……漫长的等待

    配置MySQL

    设置权限

    使用下面的命令查看是否有mysql用户及用户组

    cat /etc/passwd 

    查看用户列表

    cat /etc/group 

    如果没有就创建

    groupadd mysqluseradd -g mysql mysql

    修改/usr/local/mysql权限

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

    修改/usr/local/mysql权限

    初始化配置

    进入安装路径

    cd /usr/local/mysql

    进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表

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

    注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,
    需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,
    该文件会干扰源码安装的MySQL的正确配置,造成无法启动。
    在使用"yum update"更新系统后,需要检查下/etc目录下是否会多出一个my.cnf,
    如果多出,将它重命名成别的。否则,MySQL将使用这个配置文件启动,可能造成无法正常启动等问题。

    启动MySQL

    添加服务,拷贝服务脚本到init.d目录,并设置开机启动

    cp support-files/mysql.server /etc/init.d/mysql

    #添加开机启动
    chkconfig mysql on

    --启动MySQL

    service mysql start  

    配置用户

    MySQL启动成功后,root默认没有密码,我们需要设置root密码。

    设置之前,我们需要先设置PATH,要不不能直接调用mysql

    修改/etc/profile文件,在文件末尾添加

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

    export PATH

    关闭文件,运行下面的命令,让配置立即生效

    source /etc/profile

    现在,我们可以在终端内直接输入mysql进入,mysql的环境了

    执行下面的命令修改root密码

    mysql -uroot  mysql#    SET PASSWORD = PASSWORD('123456');

    注意:如果出现-bash: mysql: command not found

    原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,

    当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。

    首先得知道mysql命令或mysqladmin命令的完整路径,

    比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:

    ln -s /usr/local/mysql/bin/mysql /usr/bin

    若要设置root用户可以远程访问,执行

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.16.%' IDENTIFIED BY 'password' WITH GRANT OPTION;
    
    GRANT  select,update,delete ,insert  ON jobs.* TO 'java'@'%'

    加粗的password为远程访问时,root用户的密码,可以和本地不同。

    配置防火墙

    防火墙的3306端口默认没有开启,若要远程访问,需要开启这个端口

    打开

    /etc/sysconfig/iptables

    在“-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT”,下添加:

    -A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT

    然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:

    service iptables restart 

    OK,一切配置完毕,你可以访问你的MySQL了

    添加用户并授权:

    GRANT  all privileges  ON jobs.* TO 'java'@'%' IDENTIFIED BY 'java@1228' WITH GRANT OPTION;

    CentOS 7中默认使用Firewalld做防火墙,所以修改iptables后,在重启系统后,根本不管用。

    Firewalld中添加端口方法如下:

    firewall-cmd --zone=public --add-port=3306/tcp --permanent
    firewall-cmd --reload
  • 相关阅读:
    627. Swap Salary
    176. Second Highest Salary
    596. Classes More Than 5 Students
    183. Customers Who Never Order
    181. Employees Earning More Than Their Managers
    182. Duplicate Emails
    175. Combine Two Tables
    620. Not Boring Movies
    595. Big Countries
    HDU 6034 Balala Power! (贪心+坑题)
  • 原文地址:https://www.cnblogs.com/weiguo21/p/4565738.html
Copyright © 2011-2022 走看看