• Linux下MySQL 5.6.24的编译安装与部署


    MySQL 5.6正式版发布了,相对于5.5版本作出了不少改进,其源码安装配置方式也有所变化,本文根据实际操作,不断尝试,精确还原了安装的具体步骤。

    在Linux下安装MySQL前,先确认卸载系统自带数据库

    打开操作终端

    输入rpm -qa|grep mysql(罗列所有数据库相关的文件)

    rpm –e (罗列出来的文件)--nodeps(使用该命令依次删除罗列出来的文件)--nodeps为删除与之依赖的文件。

    确认Internet连接正常,以便下载安装文件。

    先使用 yum -y update 指令升级系统到最新版本。

    没有安装了CMake先安装CMake


    Make安装步骤

    步骤一、安装gcc等必备程序包(已安装则略过此步)

    yum install -y gcc gcc-c++ make automake 

    步骤二、安装wget (已安装则略过此步)

    yum install -y wget

    步骤三、获取CMake源码包

    wget

    http://www.cmake.org/files/v2.8/cmake-2.8.11-rc3.tar.gz


    步骤四、解压CMake源码包

    tar -zxvf cmake-2.8.11-rc3.tar.gz

    步骤五、进入目录

    cd cmake-2.8.11-rc3

    步骤六

    ./bootstrap

    spacer.gif


    步骤七

    gmake spacer.gif

     步骤八

    gmake install

     安装完成,可阅读install_manifest.txt查看具体都安装了什么。

    三、异常情况

    如果步骤六报错,可能原因是关联的程序包未安装。解决方法:安装所需的程序包后,将cmake-2.8.11-rc3/目录下的CMakeCache.txt删掉,再从步骤六开始。

     spacer.gif

    本安装将MySQL的数据文件与执行文件分离,如果你打算设置到不同的路径,注意修改对应的执行命令和数据库初始化脚本。

    #修改防火墙设置,打开3306端口
    vi /etc/sysconfig/iptables
    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

    #重启防火墙使新设置生效
    service iptables restart

    msyql服务器: mysql-5.6.24.tar.gz

    下载地 址:http://dev.mysql.com/downloads/mysql/5.1.html#downloads 免费版,只能下载mysql社匙版。

    MySQL  Community Server 选择合适的版本迚行下载: 

     spacer.gif

    Mysql 5.5.15 以后,使用了新的 cmake 编译方式,所以先安装 cmake。之前的版本直接 configure 然后make ,make install 。 cmake是什么? CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够 输出各种各样的 makefile 戒者 project 文件,能测试编译器所支持的 C++特性,类似 UNIX 下的 automake。 只是 CMake 的组态档取名为 CmakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的 建构档(如 Unix 的 Makefile 戒 Windows Visual C++ 的 projects/workspaces),然后再依一般 的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种 可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的匙删之处。


    安装前,如果不存在mysql 用户,则建立之

    #新增用户组


    groupadd mysql

    #新增用户
    useradd mysql -g mysql

    #新建数据库执行文件目录
    mkdir -p /usr/local/mysql

    #新建数据库数据文件目录
    mkdir -p /usr/local/mysql/data

    #编辑PATH搜索路径
    vi /etc/profile
    Append these 2 lines to the end of the file:将下面两行命令增加到最后
    PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
    export PATH

    #生效PATH搜索路径
    source /etc/profile

    #编辑hosts文件,加入本机IP和主机名
    vi /etc/hosts
    192.168.211.100      centhost.centdomain

    #安装编译源码所需的工具和库(需要联网)
    yum -y install wget gcc-c++ ncurses-devel cmake make perl

    #进入源码压缩包下载目录
    cd /usr/local/src

    #下载源码压缩包,下载包53M大小,有点慢,等吧。
    wget

    http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.10.tar.gz/from/http://cdn.mysql.com/

    http://dev.mysql.com/downloads/mysql/#downloads

    http://fossies.org/linux/misc/

    #解压缩源码包
    tar -zxvf mysql-5.6.11.tar.gz

    #进入解压缩源码目录
    cd mysql-5.6.11

    # 从mysql5.5起,mysql源码安装开始使用cmake了,执行源码编译配置脚本。

    cmake
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
    -DDEFAULT_CHARSET=utf8
    -DDEFAULT_COLLATION=utf8_general_ci
    -DWITH_MYISAM_STORAGE_ENGINE=1
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_ARCHIVE_STORAGE_ENGINE=1
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1
    -DWITH_MEMORY_STORAGE_ENGINE=1
    -DWITH_READLINE=1
    -DENABLED_LOCAL_INFILE=1
    -DMYSQL_DATADIR=/usr/local/mysql/data
    -DMYSQL_USER=mysql
    -DMYSQL_TCP_PORT=3306

    #编译源码,这一步时间会较长,耐心等待。

    cmake 编译选项含意:


    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql


    #指定mysql安装的根目录,只要

    /mysql

    目录存在就可以了,mysql-5.5在安装时,会自动创建。这个 值可以在服务器开机时,通过--basedir来设置。


    -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock

    #mysql服务器用于监听的套接字,这个必需是一个绝对路径,默认是/tmp/mysql.sock。在服务器吭劢 时,可通过--socket 来改变。


    -DDEFAULT_CHARSET=utf8

    #设置mysql默认使用utf8字符集,不指定,默认使用latin1 西欧字符集。


    -DDEFAULT_COLLATION=utf8_general_ci

    #默认字符校对


    DWITH_EXTRA_CHARSETS=all 

    #指定mysql扩展字符集支持所有的字符集。默认mysql支持所有字符集

     -DWITH_MYISAM_STORAGE_ENGINE=1

     -DWITH_INNOBASE_STORAGE_ENGINE=1

      -DWITH_MEMORY_STORAGE_ENGINE=1 

     #静态编译 Myisam、Innobase、Memory 存储引擎刡 mysql 服务器。这样 mysql 服务器就支持这三 种存储引擎了。 


    -DWITH_READLINE=1  #支持readline库 。

     -DENABLED_LOCAL_INFILE=1  #允许从本地导入数据 ,吭用加载本地数据

     -DMYSQL_DATADIR=/server/mysql/data  #mysql数据库存放数据的目录

    -DMYSQL_USER=mysql    #指定运行mysql服务的用户 


    注:具体编译参数参考: http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html 


    make


    #安装
    make install

    #清除安装临时文件
    make clean

    #修改目录拥有者
    chown -R mysql:mysql /usr/local/mysql
    chown -R mysql:mysql /usr/local/mysql/data

    #进入安装路径
    cd /usr/local/mysql

    #执行初始化配置脚本,创建系统自带的数据库和表。
    scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
    初始化脚本在 /usr/local/mysql/my.cnf 生成了配置文件。需要更改该配置文件的所有者:
    chown -R mysql:mysql /usr/local/mysql
    多说两句:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。

    #复制服务启动脚本
    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

    chmod 755 /etc/init.d/mysqld

    cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

    #启动MySQL服务
    service mysqld start

    # 设置开机自动启动服务
    chkconfig mysqld on

    chkconfig  --list mysqld5.5 mysqld5.5      0:off 1:off 2:on 3:on 4:on 5:on 6:off 


    # 修改MySQL用户root的密码(授权法,例如:你想root用户使用root密码从任何主机连接到mysql服务器)
    mysql -u root(进入MySQ终端)

    mysql>use mysql;(进入MySQL数据库)


    mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";(授权root用户使用root password从任何主机连接到mysql服务器)


    mysql>update user set Password = password('123456') where User='root';(修改root用户密码为123456)
    mysql>flush privileges;(特权)


    mysql>exit;(退出)

    # 可选:运行安全设置脚本,修改MySQL用户root(不是系统的root!)的密码,禁止root远程连接(防止破解密码),移除test数据库和匿名用户,强烈建议生产服务器使用:

    /usr/local/mysql/bin/mysql_secure_installation

    === MySQL的使用 ===

    mysql [-h <主机>] [-u <用户名>] [-p] [数据库名]

    ●更改root管理员的密码

    mysql> update mysql.user set password=password('123456') where user='root';

    ●添加用户admin,允许从任何地方登录MySQL服务器

    mysql> insert into user(host,user,password) values("%","admin",password("pwabc"));


    ●刷新用户授权信息

    mysql> flush privileges;

    ●删除MySQL的空用户

    mysql> delete from mysql.user where user='';

    ●显示数据库结构

    mysql> show database;

    mysql> show tables;

    ●显示数据表的结构

    DESCRIBE [数据库名.]表名

    mysql> use mysql;

    mysql> describe user;

    ●创建新的数据库

    CREATE DATABASE 数据库名

    mysql> create database mydb;

    ●创建新的数据表

    CREATE TABLE 表名 (字段定义……)

    mysql> CREATE TABLE users (user_name CHAR(30) NOT NULL, user_password CHAR(20) NOT NULL DEFAULT '123456', PRIMARY KEY (user_name));

    ●修改表名

    alter table 表名 rename to 新表名

    ●删除一个数据表

    DROP TABLE [数据库名.]表名

    mysql> drop table mydb.users;

    ●删除一个数据库

    DROP DATABASE 数据库名

    mysql> drop database mydb;

    ●插入数据记录

    INSERT INTO 表名(字段1,字段2,……) VALUES(字段1的值,字段2的值,……)

    mysql> insert into mydb.users(user_name,user_password) values('zhangsan',encrypt('123456'));

    ●查询数据记录

    SELECT 字段名1,字段名2…… FROM 表名 WHERE 条件表达式

    mysql> select * from mydb.users;

    mysql> select user_name,user_password from mydb.user where user_name='zhangsan';

    ●修改

    数据记录

    UPDATE 表名 SET 字段名1=字段值1[,���段名2=字段值2] WHERE 条件表达式

    mysql> update mydb.users set user_password=encrypt('123123') where user_name='list';

    ●删除数据记录

    DELETE FROM 表名 WHERE 条件表达式

    mysql> delete from mydb.users where user_name='lisi';

    ●数据库的备份

    mysqldump -u [用户名] -p [密码] [options] [数据库名] [表名] > /备份路径/备份文件名

    # 备份整个mydb数据库

    mysqldump -u root -p mydb > mysql-mydb.sql

    # 备份mysql数据库中的host表、user表

    mysqldump -u root -p mysql host user > mysql.host-user.sql

    # 备份MySQL服务器中所有数据库

    mysqldump -u root -p --all-databases > mysql-all.sql

    ●恢复数据库

    mysql -u root -p [数据库名] < /备份路径/备份文件名

    mysql -u root -p < mysql-all.sql

    mysql -u root -p mydb < mysql-mydb.sql

    ●授予权限

    GRANT 权限列表 ON 数据库名.表名 TO 用户名@来源地址 [ IDENTIFIED BY '密码' ]

    mysql> grant select on mysql.user to admin@'localhost' identified by 'pw123';

    mysql> grant all on mydb.* to admin1@'localhost' identified by '123456';

    mysql> grant select on mydb.* to admin2@'192.168.0.0/24' identified by '123456';

    mysql> grant select,insert on mydb.* to admin3@'%.benet.com' identified by 'pw456';

    ●查看权限

    SHOW GRANTS FOR 用户名@域名或IP

    mysql> show grants for root@'localhost';

    ●撤销权限

    REVOKE 权限列表 on 数据库名.表名 from 用户名@域名或者IP

    revoke all on mydb.* from admin3@'%.benet.com';

    =======================

    重置MySQL的root用户密码

    ●已经知道mysql数据库的root密码

    # 方法一:在shell环境中,使用mysqladmin命令设置(需要知道原密码)

    [root@CentOS ~]# mysqladmin -u root -p password "123456"

    # 方法二:在“mysql>”环境中,使用update命令,直接更新mysql库user表的数据

    [root@CentOS ~]# mysql -u root -p

    mysql> update mysql.user set password=password('123456') where user='root';

    mysql> flush privileges;

    # 方法三:在“mysql>”环境中,使用grant命令,修改root用户的授权权限。

    mysql>GRANT ALL ON *.* TO root@'localhost' IDENTIFIED BY '123456';

    ●忘记mysql数据库的root用户的密码

    # 关闭mysql服务

    service mysqld stop

    # 或者

    killall mysqld

    # 使用myslq_safe脚本以安全模式(不加载授权表)启动mysqld服务(数据库位非默认值需要用--datadir指定)

    /usr/local/mysql/bin/mysqld_safe --skip-grant-table --datadir=/var/mysql/data &

    # 使用空密码的root用户登录数据库,重新设置root的密码

    [root@CentOS ~]# mysql -u root

    mysql> update mysql.user set password=password('123456') where user='root';

    mysql> flush privileges;

    原文链接地址http://www.linuxidc.com/Linux/2015-08/122000.htm

  • 相关阅读:
    Java中使用Jedis操作Redis
    Predicate与filter
    Joiner的用法
    Immutable集合
    【Excle数据透视】如何在数据透视表字段列表中显示更多的字段
    【Excle数据透视表】如何显示/隐藏数据透视表字段列表
    【Excle数据透视】如何创建多条件汇总的数据透视表
    【Excle数据透视表】如何创建非共享缓存的数据透视表
    【Excle数据透透视表】如何删除数据透视表
    【Excle数据透视表】如何复制数据透视表
  • 原文地址:https://www.cnblogs.com/cz-xjw/p/6434016.html
Copyright © 2020-2023  润新知